ensure the database is always saved on exit
Costa Tsaousis (ktsaou) committed
Jan 14, 2017 at 14:19 UTC
bc4eed99c70910c3b3b86d16a09826885e2e1689
2 files changed
+16
-17
src/main.c
+15
-9
@@ -8,20 +8,25 @@ void netdata_cleanup_and_exit(int ret) {
8
error_log_limit_unlimited();
9
10
debug(D_EXIT, "Called: netdata_cleanup_and_exit()");
11
-#ifdef NETDATA_INTERNAL_CHECKS
12
- kill_childs();
13
- rrdset_free_all();
14
-#else
11
+
12
+ // save the database
13
rrdset_save_all();
16
-#endif
17
- // kill_childs();
14
15
+ // unlink the pid
16
if(pidfile[0]) {
17
if(unlink(pidfile) != 0)
18
error("Cannot unlink pidfile '%s'.", pidfile);
19
}
20
24
- info("NetData exiting. Bye bye...");
21
+#ifdef NETDATA_INTERNAL_CHECKS
22
+ // kill all childs
23
+ kill_childs();
24
+
25
+ // free all memory
26
+ rrdset_free_all();
27
+#endif
28
+
29
+ info("netdata exiting. Bye bye...");
30
exit(ret);
31
}
32
@@ -661,8 +666,7 @@ int main(int argc, char **argv)
666
if(become_daemon(dont_fork, user) == -1)
667
fatal("Cannot daemonize myself.");
668
664
- info("NetData started on pid %d", getpid());
665
-
669
+ info("netdata started on pid %d.", getpid());
670
671
// ------------------------------------------------------------------------
672
// get default pthread stack size
@@ -720,6 +724,8 @@ int main(int argc, char **argv)
724
else debug(D_SYSTEM, "Not starting thread %s.", st->name);
725
}
726
727
+ info("netdata initialization completed. Enjoy real-time performance monitoring!");
728
+
729
// ------------------------------------------------------------------------
730
// block signals while initializing threads.
731
sigset_t sigset;
src/rrd.c
+1
-8
@@ -880,14 +880,7 @@ void rrdset_free_all(void)
880
881
pthread_rwlock_unlock(&st->rwlock);
882
883
- if(st->mapped == RRD_MEMORY_MODE_SAVE) {
884
- debug(D_RRD_CALLS, "Saving stats '%s' to '%s'.", st->name, st->cache_filename);
885
- savememory(st->cache_filename, st, st->memsize);
886
-
887
- debug(D_RRD_CALLS, "Unmapping stats '%s'.", st->name);
888
- munmap(st, st->memsize);
889
- }
890
- else if(st->mapped == RRD_MEMORY_MODE_MAP) {
883
+ if(st->mapped == RRD_MEMORY_MODE_SAVE || st->mapped == RRD_MEMORY_MODE_MAP) {
884
debug(D_RRD_CALLS, "Unmapping stats '%s'.", st->name);
885
munmap(st, st->memsize);
886
}