Hi,
I need a syslogd running in foreground for a project. FreeBSD
also uses the option -F for that.
Do we want this feature in OpenBSD?
ok?
bluhm
Index: usr.sbin/syslogd/privsep.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/syslogd/privsep.c,v
retrieving revision 1.51
diff -u -p -r1.51 privsep.c
--- usr.sbin/syslogd/privsep.c 19 Jan 2015 16:40:49 -0000 1.51
+++ usr.sbin/syslogd/privsep.c 11 Jun 2015 22:58:31 -0000
@@ -151,10 +151,10 @@ priv_init(char *conf, int numeric, int l
}
if (!Debug) {
- close(lockfd);
dup2(nullfd, STDIN_FILENO);
dup2(nullfd, STDOUT_FILENO);
dup2(nullfd, STDERR_FILENO);
+ close(lockfd);
}
if (nullfd > 2)
close(nullfd);
Index: usr.sbin/syslogd/syslogd.8
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/syslogd/syslogd.8,v
retrieving revision 1.33
diff -u -p -r1.33 syslogd.8
--- usr.sbin/syslogd/syslogd.8 30 Jan 2015 14:09:49 -0000 1.33
+++ usr.sbin/syslogd/syslogd.8 11 Jun 2015 22:55:14 -0000
@@ -39,7 +39,7 @@
.Sh SYNOPSIS
.Nm syslogd
.Bk -words
-.Op Fl 46dhnuV
+.Op Fl 46dFhnuV
.Op Fl a Ar path
.Op Fl C Ar CAfile
.Op Fl f Ar config_file
@@ -85,6 +85,8 @@ and do not disassociate from the control
Specify the pathname of an alternate configuration file;
the default is
.Pa /etc/syslog.conf .
+.It Fl F
+Do not daemonize and stay in foreground.
.It Fl h
Include the hostname when forwarding messages to a remote host.
.It Fl m Ar mark_interval
Index: usr.sbin/syslogd/syslogd.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/syslogd/syslogd.c,v
retrieving revision 1.161
diff -u -p -r1.161 syslogd.c
--- usr.sbin/syslogd/syslogd.c 30 Mar 2015 09:21:42 -0000 1.161
+++ usr.sbin/syslogd/syslogd.c 11 Jun 2015 22:59:10 -0000
@@ -205,6 +205,7 @@ struct filed consfile;
int nunix = 1; /* Number of Unix domain sockets requested */
char *path_unix[MAXUNIX] = { _PATH_LOG }; /* Paths to Unix domain sockets */
int Debug; /* debug flag */
+int Foreground; /* run in foreground, instead of daemonizing */
int Startup = 1; /* startup flag */
char LocalHostName[HOST_NAME_MAX+1]; /* our hostname */
char *LocalDomain; /* our local domain name */
@@ -328,7 +329,7 @@ main(int argc, char *argv[])
int ch, i;
int lockpipe[2] = { -1, -1}, pair[2], nullfd, fd;
- while ((ch = getopt(argc, argv, "46C:dhnuf:m:p:a:s:V")) != -1)
+ while ((ch = getopt(argc, argv, "46C:dhnuf:Fm:p:a:s:V")) != -1)
switch (ch) {
case '4': /* disable IPv6 */
IPv4Only = 1;
@@ -347,6 +348,9 @@ main(int argc, char *argv[])
case 'f': /* configuration file */
ConfFile = optarg;
break;
+ case 'F': /* foreground */
+ Foreground = 1;
+ break;
case 'h': /* RFC 3164 hostnames */
IncludeHostname = 1;
break;
@@ -557,7 +561,7 @@ main(int argc, char *argv[])
tzset();
- if (!Debug) {
+ if (!Debug && !Foreground) {
char c;
pipe(lockpipe);
@@ -969,7 +973,7 @@ usage(void)
{
(void)fprintf(stderr,
- "usage: syslogd [-46dhnuV] [-a path] [-C CAfile] [-f config_file]\n"
+ "usage: syslogd [-46dFhnuV] [-a path] [-C CAfile] [-f
config_file]\n"
" [-m mark_interval] [-p log_socket] [-s
reporting_socket]\n");
exit(1);
}