git://git.iain.cx/iain
/
nssm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Try to create messages at install time.
[nssm.git]
/
process.cpp
diff --git
a/process.cpp
b/process.cpp
index
d1a9a49
..
1c6946a
100644
(file)
--- a/
process.cpp
+++ b/
process.cpp
@@
-241,7
+241,8
@@
int kill_console(nssm_service_t *service, kill_t *k) {
\r
/* Ignore the event ourselves. */
\r
ret = 0;
\r
\r
/* Ignore the event ourselves. */
\r
ret = 0;
\r
- if (! SetConsoleCtrlHandler(0, TRUE)) {
\r
+ BOOL ignored = SetConsoleCtrlHandler(0, TRUE);
\r
+ if (! ignored) {
\r
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_SETCONSOLECTRLHANDLER_FAILED, k->name, error_string(GetLastError()), 0);
\r
ret = 4;
\r
}
\r
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_SETCONSOLECTRLHANDLER_FAILED, k->name, error_string(GetLastError()), 0);
\r
ret = 4;
\r
}
\r
@@
-262,6
+263,11
@@
int kill_console(nssm_service_t *service, kill_t *k) {
/* Wait for process to exit. */
\r
if (await_single_handle(k->status_handle, k->status, k->process_handle, k->name, _T(__FUNCTION__), k->kill_console_delay)) ret = 6;
\r
\r
/* Wait for process to exit. */
\r
if (await_single_handle(k->status_handle, k->status, k->process_handle, k->name, _T(__FUNCTION__), k->kill_console_delay)) ret = 6;
\r
\r
+ /* Remove our handler. */
\r
+ if (ignored && ! SetConsoleCtrlHandler(0, FALSE)) {
\r
+ log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_SETCONSOLECTRLHANDLER_FAILED, k->name, error_string(GetLastError()), 0);
\r
+ }
\r
+
\r
return ret;
\r
}
\r
\r
return ret;
\r
}
\r
\r