signal(SIGPIPE, SIG_IGN);
signal(SIGINT, &common_sighandler);
signal(SIGTERM, &common_sighandler);
signal(SIGPIPE, SIG_IGN);
signal(SIGINT, &common_sighandler);
signal(SIGTERM, &common_sighandler);
signal(SIGSEGV, &common_sighandler);
syslog(LOG_INFO, "Starting...");
return 0;
signal(SIGSEGV, &common_sighandler);
syslog(LOG_INFO, "Starting...");
return 0;
- if (daemon_detach() < 0) {
+ if (drop_privileges(RUNAS_USER, RUNAS_GROUP) < 0) {
+ syslog(LOG_CRIT, "unable to drop privileges");
+ return EXIT_FAILURE;
+ }
+
+ if (daemonize && daemon_detach() < 0) {