central childs management
Costa Tsaousis (ktsaou) committed
May 2, 2014 at 18:41 UTC
9ef62617481e5089f7b1b64f18d5d5440adef3b0
1 file changed
+15
-8
netdata.c
+15
-8
@@ -5848,10 +5848,23 @@ void *chartsd_main(void *ptr)
5848
// ----------------------------------------------------------------------------
5849
// main and related functions
5850
5851
+void kill_childs()
5852
+{
5853
+ if(tc_child_pid) kill(tc_child_pid, SIGTERM);
5854
+ tc_child_pid = 0;
5855
+
5856
+ struct chartd *cd;
5857
+ for(cd = chartsd_root ; cd ; cd = cd->next)
5858
+ if(cd->pid && !cd->obsolete) {
5859
+ kill(cd->pid, SIGTERM);
5860
+ cd->pid = 0;
5861
+ }
5862
+}
5863
+
5864
void bye(void)
5865
{
5866
error("bye...");
5854
- if(tc_child_pid) kill(tc_child_pid, SIGTERM);
5867
+ kill_childs();
5868
tc_child_pid = 0;
5869
}
5870
@@ -5864,13 +5877,7 @@ void sig_handler(int signo)
5877
case SIGHUP:
5878
case SIGSEGV:
5879
error("Signaled exit (signal %d).", signo);
5867
- if(tc_child_pid) kill(tc_child_pid, SIGTERM);
5868
- tc_child_pid = 0;
5869
-
5870
- struct chartd *cd;
5871
- for(cd = chartsd_root ; cd ; cd = cd->next)
5872
- if(cd->pid) kill(cd->pid, SIGTERM);
5873
-
5880
+ kill_childs();
5881
exit(1);
5882
break;
5883