diff options
| author | Sven Nierlein <sven@nierlein.de> | 2019-02-15 10:36:28 +0100 |
|---|---|---|
| committer | Sven Nierlein <sven@nierlein.de> | 2019-02-15 10:36:28 +0100 |
| commit | 7cafb0e84550035fe671662c293122be975065ca (patch) | |
| tree | 5d80a8e80854edc41a72da668a89485505d7e5dc /lib/utils_cmd.h | |
| parent | 2962148d8bac3a65f1fb5e1a948e3f0a86a42a1a (diff) | |
| download | monitoring-plugins-7cafb0e84550035fe671662c293122be975065ca.tar.gz | |
check_by_ssh: fix child process leak on timeouts
When check_by_ssh runs into a timeout it simply exits keeping all child processes running.
Simply adopting the kill loop from runcmd_timeout_alarm_handler() fixes this.
Signed-off-by: Sven Nierlein <sven@nierlein.de>
Diffstat (limited to 'lib/utils_cmd.h')
| -rw-r--r-- | lib/utils_cmd.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/utils_cmd.h b/lib/utils_cmd.h index ebaf15be..6f3aeb81 100644 --- a/lib/utils_cmd.h +++ b/lib/utils_cmd.h | |||
| @@ -32,4 +32,17 @@ void cmd_init (void); | |||
| 32 | #define CMD_NO_ARRAYS 0x01 /* don't populate arrays at all */ | 32 | #define CMD_NO_ARRAYS 0x01 /* don't populate arrays at all */ |
| 33 | #define CMD_NO_ASSOC 0x02 /* output.line won't point to buf */ | 33 | #define CMD_NO_ASSOC 0x02 /* output.line won't point to buf */ |
| 34 | 34 | ||
| 35 | /* This variable must be global, since there's no way the caller | ||
| 36 | * can forcibly slay a dead or ungainly running program otherwise. | ||
| 37 | * Multithreading apps and plugins can initialize it (via CMD_INIT) | ||
| 38 | * in an async safe manner PRIOR to calling cmd_run() or cmd_run_array() | ||
| 39 | * for the first time. | ||
| 40 | * | ||
| 41 | * The check for initialized values is atomic and can | ||
| 42 | * occur in any number of threads simultaneously. */ | ||
| 43 | static pid_t *_cmd_pids = NULL; | ||
| 44 | |||
| 45 | RETSIGTYPE timeout_alarm_handler (int); | ||
| 46 | |||
| 47 | |||
| 35 | #endif /* _UTILS_CMD_ */ | 48 | #endif /* _UTILS_CMD_ */ |
