X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=process.cpp;h=97b6e38421480d5176d791648c1afe5c33f514a5;hb=55f0212c538955a0c812aa3a6ddb367b292189e4;hp=84d2e9afaa374dc001e5e948191a9db2d44089ee;hpb=e9d9b2fa71473e96650fe3fc4ee0d5535c6725d8;p=nssm.git diff --git a/process.cpp b/process.cpp index 84d2e9a..97b6e38 100644 --- a/process.cpp +++ b/process.cpp @@ -149,7 +149,9 @@ void kill_process_tree(char *service_name, unsigned long pid, unsigned long exit _snprintf(ppid_string, sizeof(ppid_string), "%d", ppid); log_event(EVENTLOG_INFORMATION_TYPE, NSSM_EVENT_KILL_PROCESS_TREE, pid_string, ppid_string, service_name, 0); if (! kill_process(service_name, process_handle, pid, exitcode)) { - log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_TERMINATEPROCESS_FAILED, pid_string, service_name, error_string(GetLastError()), 0); + /* Maybe it already died. */ + unsigned long ret; + if (! GetExitCodeProcess(process_handle, &ret)) log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_TERMINATEPROCESS_FAILED, pid_string, service_name, error_string(GetLastError()), 0); return; } }