+ // check arguments\r
+ if(argc>1)\r
+ {\r
+ #ifndef _WIN32\r
+ if(argv[1] && strncmp(argv[1],"-d",2)==0)\r
+ {\r
+ Daemonize();\r
+ daemon=true;\r
+ }\r
+ #else\r
+ if(argv[1] && strncmp(argv[1],"-i",2)==0)\r
+ {\r
+ if(ServiceIsInstalled())\r
+ {\r
+ std::cout << "FMS Service is already installed" << std::endl;\r
+ }\r
+ else\r
+ {\r
+ if(ServiceInstall())\r
+ {\r
+ std::cout << "FMS Service Installed" << std::endl;\r
+ }\r
+ else\r
+ {\r
+ std::cout << "Error installing FMS Service" << std::endl;\r
+ }\r
+ }\r
+ return 0;\r
+ }\r
+ else if(argv[1] && strncmp(argv[1],"-u",2)==0)\r
+ {\r
+ if(ServiceIsInstalled())\r
+ {\r
+ if(ServiceUninstall())\r
+ {\r
+ std::cout << "FMS Service uninstalled" << std::endl;\r
+ }\r
+ else\r
+ {\r
+ std::cout << "There was a problem uninstalling the service" << std::endl;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ std::cout << "FMS Service is not currently installed" << std::endl;\r
+ }\r
+ return 0;\r
+ }\r
+ else if(argv[1] && strncmp(argv[1],"-s",2)==0)\r
+ {\r
+ if(ServiceStart())\r
+ {\r
+ }\r
+ else\r
+ {\r
+ std::cout << "FMS Service could not be started at this time" << std::endl;\r
+ }\r
+ return 0;\r
+ }\r
+ #endif\r
+ }\r
+\r
+ signal(SIGINT,SigHandler);\r
+ signal(SIGTERM,SigHandler);\r
+ signal(SIGABRT,SigHandler);\r
+#ifdef _WIN32\r
+ signal(SIGBREAK,SigHandler);\r
+#endif\r
+\r
+ if(daemon==false)\r
+ {\r
+ std::cout << "FMS Running in console mode." << std::endl;\r
+ std::cout << "Use the administration pages, or CTRL+C to exit" << std::endl << std::endl;\r
+ std::cout << "Available command line arguments:" << std::endl;\r
+ #ifdef _WIN32\r
+ std::cout << "-i\tinstall service" << std::endl;\r
+ std::cout << "-u\tuninstall service" << std::endl;\r
+ #else\r
+ std::cout << "-d\trun as daemon" << std::endl;\r
+ #endif\r
+ }\r
+\r
+ MainFunction();\r
+\r
+ return 0;\r
+}\r