lpd: Add -F flag to prevent daemonizing
This is necessary for use with supervision, e.g. runit. I chose -F simply because that is what the folks at LPRng use. Approved by: pfg, gad, ngie Differential Revision: https://reviews.freebsd.org/D29566
This commit is contained in:
parent
bbf7a4e878
commit
3c63660670
@ -108,6 +108,17 @@ This means that
|
|||||||
will not accept any connections from any remote
|
will not accept any connections from any remote
|
||||||
hosts, although it will still accept print requests
|
hosts, although it will still accept print requests
|
||||||
from all local users.
|
from all local users.
|
||||||
|
.It Fl F
|
||||||
|
By default,
|
||||||
|
.Nm
|
||||||
|
will daemonize into the background.
|
||||||
|
The
|
||||||
|
.Fl F
|
||||||
|
flag causes
|
||||||
|
.Nm
|
||||||
|
to remain in the foreground.
|
||||||
|
Logging is still performed with
|
||||||
|
.Xr syslog 3 .
|
||||||
.It Fl W
|
.It Fl W
|
||||||
By default, the
|
By default, the
|
||||||
.Nm
|
.Nm
|
||||||
|
@ -104,6 +104,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
int lflag; /* log requests flag */
|
int lflag; /* log requests flag */
|
||||||
int sflag; /* no incoming port flag */
|
int sflag; /* no incoming port flag */
|
||||||
|
int Fflag; /* run in foreground flag */
|
||||||
int from_remote; /* from remote socket */
|
int from_remote; /* from remote socket */
|
||||||
|
|
||||||
int main(int argc, char **_argv);
|
int main(int argc, char **_argv);
|
||||||
@ -152,7 +153,7 @@ main(int argc, char **argv)
|
|||||||
errx(EX_NOPERM,"must run as root");
|
errx(EX_NOPERM,"must run as root");
|
||||||
|
|
||||||
errs = 0;
|
errs = 0;
|
||||||
while ((i = getopt(argc, argv, "cdlpswW46")) != -1)
|
while ((i = getopt(argc, argv, "cdlpswFW46")) != -1)
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 'c':
|
case 'c':
|
||||||
/* log all kinds of connection-errors to syslog */
|
/* log all kinds of connection-errors to syslog */
|
||||||
@ -184,6 +185,9 @@ main(int argc, char **argv)
|
|||||||
syslog(LOG_WARNING,
|
syslog(LOG_WARNING,
|
||||||
"NOTE: please change your lpd config to use -W");
|
"NOTE: please change your lpd config to use -W");
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
case 'F':
|
||||||
|
Fflag++;
|
||||||
|
break;
|
||||||
case 'W':
|
case 'W':
|
||||||
/* allow connections coming from a non-reserved port */
|
/* allow connections coming from a non-reserved port */
|
||||||
/* (done by some lpr-implementations for MS-Windows) */
|
/* (done by some lpr-implementations for MS-Windows) */
|
||||||
@ -264,12 +268,16 @@ main(int argc, char **argv)
|
|||||||
WEXITSTATUS(status));
|
WEXITSTATUS(status));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef DEBUG
|
#ifdef DEBUG
|
||||||
/*
|
Fflag++;
|
||||||
* Set up standard environment by detaching from the parent.
|
|
||||||
*/
|
|
||||||
daemon(0, 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
|
* Set up standard environment by detaching from the parent
|
||||||
|
* if -F not specified
|
||||||
|
*/
|
||||||
|
if (Fflag == 0) {
|
||||||
|
daemon(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
openlog("lpd", LOG_PID, LOG_LPR);
|
openlog("lpd", LOG_PID, LOG_LPR);
|
||||||
syslog(LOG_INFO, "lpd startup: logging=%d%s%s", lflag,
|
syslog(LOG_INFO, "lpd startup: logging=%d%s%s", lflag,
|
||||||
@ -932,9 +940,9 @@ static void
|
|||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
#ifdef INET6
|
#ifdef INET6
|
||||||
fprintf(stderr, "usage: lpd [-cdlsW46] [port#]\n");
|
fprintf(stderr, "usage: lpd [-cdlsFW46] [port#]\n");
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "usage: lpd [-cdlsW] [port#]\n");
|
fprintf(stderr, "usage: lpd [-cdlsFW] [port#]\n");
|
||||||
#endif
|
#endif
|
||||||
exit(EX_USAGE);
|
exit(EX_USAGE);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user