ngroups = 0;
}
+#ifdef __APPLE__
+ if(setregid(gid, gid) != 0) {
+#else
if(setresgid(gid, gid, gid) != 0) {
+#endif /* __APPLE__ */
error("Cannot switch to user's %s group (gid: %u).", username, gid);
return -1;
}
+#ifdef __APPLE__
+ if(setreuid(uid, uid) != 0) {
+#else
if(setresuid(uid, uid, uid) != 0) {
+#endif /* __APPLE__ */
error("Cannot switch to user %s (uid: %u).", username, uid);
return -1;
}
#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) {