Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F153236660
D22474.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D22474.diff
View Options
Index: head/usr.sbin/rpc.lockd/lockd.c
===================================================================
--- head/usr.sbin/rpc.lockd/lockd.c
+++ head/usr.sbin/rpc.lockd/lockd.c
@@ -120,6 +120,7 @@
char *endptr, **hosts_bak;
struct sigaction sigalarm;
int grace_period = 30;
+ int foreground = 0;
struct netconfig *nconf;
int have_v6 = 1;
int maxrec = RPC_MAXDATASIZE;
@@ -127,7 +128,7 @@
int attempt_cnt, port_len, port_pos, ret;
char **port_list;
- while ((ch = getopt(argc, argv, "d:g:h:p:")) != (-1)) {
+ while ((ch = getopt(argc, argv, "d:Fg:h:p:")) != (-1)) {
switch (ch) {
case 'd':
debug_level = atoi(optarg);
@@ -136,6 +137,9 @@
/* NOTREACHED */
}
break;
+ case 'F':
+ foreground = 1;
+ break;
case 'g':
grace_period = atoi(optarg);
if (!grace_period) {
@@ -422,7 +426,7 @@
* Note that it is NOT sensible to run this program from inetd - the
* protocol assumes that it will run immediately at boot time.
*/
- if (daemon(0, debug_level > 0)) {
+ if ((foreground == 0) && daemon(0, debug_level > 0)) {
err(1, "cannot fork");
/* NOTREACHED */
}
@@ -844,7 +848,7 @@
usage()
{
errx(1, "usage: rpc.lockd [-d <debuglevel>]"
- " [-g <grace period>] [-h <bindip>] [-p <port>]");
+ " [-F] [-g <grace period>] [-h <bindip>] [-p <port>]");
}
/*
Index: head/usr.sbin/rpc.lockd/rpc.lockd.8
===================================================================
--- head/usr.sbin/rpc.lockd/rpc.lockd.8
+++ head/usr.sbin/rpc.lockd/rpc.lockd.8
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 2, 2007
+.Dd November 21, 2019
.Dt RPC.LOCKD 8
.Os
.Sh NAME
@@ -38,6 +38,7 @@
.Sh SYNOPSIS
.Nm
.Op Fl d Ar debug_level
+.Op Fl F
.Op Fl g Ar grace period
.Op Fl h Ar bindip
.Op Fl p Ar port
@@ -70,6 +71,17 @@
Higher
debug levels can be specified, causing display of operation arguments
and internal operations of the daemon.
+.It Fl F
+Run
+.Nm
+in the foreground, rather than going into daemon mode.
+This is useful if some other process uses
+.Xr fork 2
+and
+.Xr exec 3
+to run
+.Nm ,
+and wants to monitor when and how it exits.
.It Fl g
The
.Fl g
Index: head/usr.sbin/rpc.statd/rpc.statd.8
===================================================================
--- head/usr.sbin/rpc.statd/rpc.statd.8
+++ head/usr.sbin/rpc.statd/rpc.statd.8
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 1, 2007
+.Dd November 21, 2019
.Dt RPC.STATD 8
.Os
.Sh NAME
@@ -38,6 +38,7 @@
.Sh SYNOPSIS
.Nm
.Op Fl d
+.Op Fl F
.Op Fl h Ar bindip
.Op Fl p Ar port
.Sh DESCRIPTION
@@ -71,6 +72,17 @@
LOG_DEBUG and facility LOG_DAEMON.
Error conditions are logged irrespective
of this option, using level LOG_ERR.
+.It Fl F
+Run
+.Nm
+in the foreground, rather than going into daemon mode.
+This is useful if some other process uses
+.Xr fork 2
+and
+.Xr exec 3
+to run
+.Nm ,
+and wants to monitor when and how it exits.
.It Fl h Ar bindip
Specify specific IP addresses to bind to.
This option may be specified multiple times.
Index: head/usr.sbin/rpc.statd/statd.c
===================================================================
--- head/usr.sbin/rpc.statd/statd.c
+++ head/usr.sbin/rpc.statd/statd.c
@@ -89,15 +89,19 @@
char *endptr;
char **hosts_bak;
int have_v6 = 1;
+ int foreground = 0;
int maxrec = RPC_MAXDATASIZE;
int attempt_cnt, port_len, port_pos, ret;
char **port_list;
- while ((ch = getopt(argc, argv, "dh:p:")) != -1)
+ while ((ch = getopt(argc, argv, "dFh:p:")) != -1)
switch (ch) {
case 'd':
debug = 1;
break;
+ case 'F':
+ foreground = 1;
+ break;
case 'h':
++nhosts;
hosts_bak = hosts;
@@ -288,7 +292,11 @@
/* Note that it is NOT sensible to run this program from inetd - the */
/* protocol assumes that it will run immediately at boot time. */
- daemon(0, 0);
+ if ((foreground == 0) && daemon(0, 0) < 0) {
+ err(1, "cannot fork");
+ /* NOTREACHED */
+ }
+
openlog("rpc.statd", 0, LOG_DAEMON);
if (debug) syslog(LOG_INFO, "Starting - debug enabled");
else syslog(LOG_INFO, "Starting");
@@ -618,7 +626,7 @@
static void
usage(void)
{
- fprintf(stderr, "usage: rpc.statd [-d] [-h <bindip>] [-p <port>]\n");
+ fprintf(stderr, "usage: rpc.statd [-d] [-F] [-h <bindip>] [-p <port>]\n");
exit(1);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Apr 21, 12:02 AM (7 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31873006
Default Alt Text
D22474.diff (4 KB)
Attached To
Mode
D22474: Add option to run rpc.{lockd,statd} in the foreground.
Attached
Detach File
Event Timeline
Log In to Comment