FreeSid(AdministratorsGroup);\r
}\r
\r
-/* See if we were launched from a console window. */\r
-static void check_console() {\r
- /* If we're running in a service context there will be no console window. */\r
- HWND console = GetConsoleWindow();\r
- if (! console) return;\r
-\r
- unsigned long pid;\r
- if (! GetWindowThreadProcessId(console, &pid)) return;\r
-\r
- /*\r
- If the process associated with the console window handle is the same as\r
- this process, we were not launched from an existing console. The user\r
- probably double-clicked our executable.\r
- */\r
- if (GetCurrentProcessId() != pid) return;\r
-\r
- /* We close our new console so that subsequent messages appear in a popup. */\r
- FreeConsole();\r
-}\r
-\r
int num_cpus() {\r
DWORD_PTR i, affinity, system_affinity;\r
if (! GetProcessAffinityMask(GetCurrentProcess(), &affinity, &system_affinity)) return 64;\r
*/\r
if (str_equiv(argv[1], _T("start"))) exit(control_service(NSSM_SERVICE_CONTROL_START, argc - 2, argv + 2));\r
if (str_equiv(argv[1], _T("stop"))) exit(control_service(SERVICE_CONTROL_STOP, argc - 2, argv + 2));\r
+ if (str_equiv(argv[1], _T("restart"))) {\r
+ int ret = control_service(SERVICE_CONTROL_STOP, argc - 2, argv + 2);\r
+ if (ret) exit(ret);\r
+ exit(control_service(NSSM_SERVICE_CONTROL_START, argc - 2, argv + 2));\r
+ }\r
if (str_equiv(argv[1], _T("pause"))) exit(control_service(SERVICE_CONTROL_PAUSE, argc - 2, argv + 2));\r
if (str_equiv(argv[1], _T("continue"))) exit(control_service(SERVICE_CONTROL_CONTINUE, argc - 2, argv + 2));\r
if (str_equiv(argv[1], _T("status"))) exit(control_service(SERVICE_CONTROL_INTERROGATE, argc - 2, argv + 2));\r