nssm_service_t *service = alloc_nssm_service();\r
if (! service) return;\r
\r
+ static volatile bool await_debugger = (argc > 1 && str_equiv(argv[1], _T("debug")));\r
+ while (await_debugger) Sleep(1000);\r
+\r
if (_sntprintf_s(service->name, _countof(service->name), _TRUNCATE, _T("%s"), argv[0]) < 0) {\r
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_OUT_OF_MEMORY, _T("service->name"), _T("service_main()"), 0);\r
return;\r
return ret;\r
}\r
\r
-int list_nssm_services() {\r
+int list_nssm_services(int argc, TCHAR **argv) {\r
+ bool including_native = (argc > 0 && str_equiv(argv[0], _T("all")));\r
+\r
/* Open service manager. */\r
SC_HANDLE services = open_service_manager(SC_MANAGER_CONNECT | SC_MANAGER_ENUMERATE_SERVICE);\r
if (! services) {\r
\r
get_parameters(service, 0);\r
/* We manage the service if we have an Application. */\r
- if (service->exe[0]) _tprintf(_T("%s\n"), service->name);\r
+ if (including_native || service->exe[0]) _tprintf(_T("%s\n"), service->name);\r
\r
cleanup_nssm_service(service);\r
}\r