summaryrefslogtreecommitdiffstats
path: root/collectors/plugins.d
diff options
context:
space:
mode:
authorSteven Hartland <steven.hartland@multiplay.co.uk>2019-10-17 14:35:08 +0100
committerChris Akritidis <43294513+cakrit@users.noreply.github.com>2019-10-17 15:35:08 +0200
commit7ff016ea74261246def5500308f17cb575059856 (patch)
treefdb15a3a92ede70ffc41d74bddf4e64b740d7b30 /collectors/plugins.d
parent4b9cc50adc5d3cd0a644ebbd2d5db4ae66e4208e (diff)
feat(reaper): Add process reaper support (#7059)
##### Summary Add a child process reaper to the main netdata app if running as init (pid = 1). This prevents zombie processes when a child is re-parented to netdata when its running in a container. Also: * Few style cleanups to match surrounding code. Fixes: #6033 ##### Component Name netdata binary ##### Additional Information This re-purposes old commented out code in `popen.c`, which already implemented part of the required process tracking. Without this on a standard netdata docker install we saw at least one zombie `timeout` process straight after the container was started.
Diffstat (limited to 'collectors/plugins.d')
-rw-r--r--collectors/plugins.d/plugins_d.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/collectors/plugins.d/plugins_d.c b/collectors/plugins.d/plugins_d.c
index 5e25e98239..edbdb57302 100644
--- a/collectors/plugins.d/plugins_d.c
+++ b/collectors/plugins.d/plugins_d.c
@@ -647,7 +647,7 @@ static void pluginsd_worker_thread_cleanup(void *arg) {
if (cd->pid) {
siginfo_t info;
info("killing child process pid %d", cd->pid);
- if (killpid(cd->pid, SIGTERM) != -1) {
+ if (killpid(cd->pid) != -1) {
info("waiting for child process pid %d to exit...", cd->pid);
waitid(P_PID, (id_t) cd->pid, &info, WEXITED);
}
@@ -738,7 +738,7 @@ void *pluginsd_worker_thread(void *arg) {
info("connected to '%s' running on pid %d", cd->fullfilename, cd->pid);
count = pluginsd_process(localhost, cd, fp, 0);
error("'%s' (pid %d) disconnected after %zu successful data collections (ENDs).", cd->fullfilename, cd->pid, count);
- killpid(cd->pid, SIGTERM);
+ killpid(cd->pid);
int worker_ret_code = mypclose(fp, cd->pid);