#include "nssm.h"
extern imports_t imports;
+extern unsigned long kill_console_delay;
+extern unsigned long kill_window_delay;
+extern unsigned long kill_threads_delay;
int get_process_creation_time(HANDLE process_handle, FILETIME *ft) {
FILETIME creation_time, exit_time, kernel_time, user_time;
HANDLE process_handle = OpenProcess(PROCESS_QUERY_INFORMATION, false, pe->th32ProcessID);
if (! process_handle) {
char pid_string[16];
- _snprintf_s(pid_string, sizeof(pid_string), _TRUNCATE, "%d", pe->th32ProcessID);
+ _snprintf_s(pid_string, sizeof(pid_string), _TRUNCATE, "%lu", pe->th32ProcessID);
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_OPENPROCESS_FAILED, pid_string, service_name, error_string(GetLastError()), 0);
return 2;
}
if (stop_method & NSSM_STOP_METHOD_WINDOW) {
EnumWindows((WNDENUMPROC) kill_window, (LPARAM) &k);
if (k.signalled) {
- if (! WaitForSingleObject(process_handle, NSSM_KILL_WINDOW_GRACE_PERIOD)) return 1;
+ if (! WaitForSingleObject(process_handle, kill_window_delay)) return 1;
}
}
*/
if (stop_method & NSSM_STOP_METHOD_THREADS) {
if (kill_threads(service_name, &k)) {
- if (! WaitForSingleObject(process_handle, NSSM_KILL_THREADS_GRACE_PERIOD)) return 1;
+ if (! WaitForSingleObject(process_handle, kill_threads_delay)) return 1;
}
}
}
/* Wait for process to exit. */
- if (WaitForSingleObject(process_handle, NSSM_KILL_CONSOLE_GRACE_PERIOD)) return 6;
+ if (WaitForSingleObject(process_handle, kill_console_delay)) return 6;
return ret;
}
if (! pid) return;
char pid_string[16], code[16];
- _snprintf_s(pid_string, sizeof(pid_string), _TRUNCATE, "%d", pid);
- _snprintf_s(code, sizeof(code), _TRUNCATE, "%d", exitcode);
+ _snprintf_s(pid_string, sizeof(pid_string), _TRUNCATE, "%lu", pid);
+ _snprintf_s(code, sizeof(code), _TRUNCATE, "%lu", exitcode);
log_event(EVENTLOG_INFORMATION_TYPE, NSSM_EVENT_KILLING, service_name, pid_string, code, 0);
/* Get a snapshot of all processes in the system. */
}
char ppid_string[16];
- _snprintf_s(ppid_string, sizeof(ppid_string), _TRUNCATE, "%d", ppid);
+ _snprintf_s(ppid_string, sizeof(ppid_string), _TRUNCATE, "%lu", ppid);
log_event(EVENTLOG_INFORMATION_TYPE, NSSM_EVENT_KILL_PROCESS_TREE, pid_string, ppid_string, service_name, 0);
if (! kill_process(service_name, stop_method, process_handle, pid, exitcode)) {
/* Maybe it already died. */