#endif
}
-int become_daemon(int dont_fork, const char *user)
+int become_daemon(int dont_fork, const char *user, int oom_score)
{
if(!dont_fork) {
int i = fork();
umask(0007);
// adjust my Out-Of-Memory score
- oom_score_adj(1000);
+ oom_score_adj(oom_score);
// never become a problem
if(sched_setscheduler_idle() != 0) {
extern int become_user(const char *username, int pid_fd);
-extern int become_daemon(int dont_fork, const char *user);
+extern int become_daemon(int dont_fork, const char *user, int oom_score);
extern void netdata_cleanup_and_exit(int i);
int i, check_config = 0;
int config_loaded = 0;
int dont_fork = 0;
+ int oom_score = 1000;
size_t wanted_stacksize = 0, stacksize = 0;
pthread_attr_t attr;
// --------------------------------------------------------------------
rrd_memory_mode = rrd_memory_mode_id(config_get("global", "memory mode", rrd_memory_mode_name(rrd_memory_mode)));
+ oom_score = (int)config_get_number("global", "OOM score", oom_score);
// --------------------------------------------------------------------
#endif /* NETDATA_INTERNAL_CHECKS */
// fork, switch user, create pid file, set process priority
- if(become_daemon(dont_fork, user) == -1)
+ if(become_daemon(dont_fork, user, oom_score) == -1)
fatal("Cannot daemonize myself.");
info("netdata started on pid %d.", getpid());