projects
/
umurmur.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Set scheduling policy before dropping privileges
[umurmur.git]
/
src
/
main.c
diff --git
a/src/main.c
b/src/main.c
index a18363dd721bc579bdbcd842e295d4c8b0223132..bc913395f8b56e784709aac25ed9839ca1820f73 100644
(file)
--- a/
src/main.c
+++ b/
src/main.c
@@
-323,6
+323,13
@@
int main(int argc, char **argv)
if (pidfile != NULL)
lockfile(pidfile);
if (pidfile != NULL)
lockfile(pidfile);
+#ifdef POSIX_PRIORITY_SCHEDULING
+ /* Set the scheduling policy, has to be called after daemonizing
+ * but before we drop privileges */
+ if (realtime)
+ setscheduler();
+#endif
+
switch_user();
/* Reopen log file. If user switch results in access denied, we catch
switch_user();
/* Reopen log file. If user switch results in access denied, we catch
@@
-332,6
+339,15
@@
int main(int argc, char **argv)
}
else Log_init(true);
}
else Log_init(true);
+#ifdef POSIX_PRIORITY_SCHEDULING
+ /* We still want to set scheduling policy if nodaemon is specified,
+ * but if we are daemonizing setscheduler() will be called above */
+ if (nodaemon) {
+ if (realtime)
+ setscheduler();
+ }
+#endif
+
signal(SIGCHLD, SIG_IGN); /* ignore child */
signal(SIGTSTP, SIG_IGN); /* ignore tty signals */
signal(SIGTTOU, SIG_IGN);
signal(SIGCHLD, SIG_IGN); /* ignore child */
signal(SIGTSTP, SIG_IGN); /* ignore tty signals */
signal(SIGTTOU, SIG_IGN);
@@
-360,11
+376,6
@@
int main(int argc, char **argv)
Sharedmemory_init( bindport, bindport6 );
#endif
Sharedmemory_init( bindport, bindport6 );
#endif
-#ifdef POSIX_PRIORITY_SCHEDULING
- if (realtime)
- setscheduler();
-#endif
-
Server_run();
#ifdef USE_SHAREDMEMORY_API
Server_run();
#ifdef USE_SHAREDMEMORY_API