+ /* Close all file descriptors */
+ closelog();
+ fcloseall();
+
+ /* Open standard input */
+ if(open("/dev/null", O_RDONLY) < 0)
+ {
+ syslog(LOG_ERR, _("Opening `/dev/null' failed: %m"));
+ error = 1;
+ }
+
+ if(!error)
+ {
+ /* Standard output directly goes to syslog */
+ openlog(name, LOG_CONS | LOG_PID, LOG_DAEMON);
+ /* Standard error as well */
+ if(dup2(1, 2) < 0)
+ {
+ syslog(LOG_ERR, _("System call `%s' failed: %m"),
+ "dup2");
+ error = 1;
+ }
+ }
+
+ if(error && debug_lvl > 1)
+ syslog(LOG_INFO, _("This means that any output the script generates will not be shown in syslog."));
+
+ execl(scriptname, NULL);