summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Pettit <jpettit@nicira.com>2009-08-05 14:20:24 -0700
committerJustin Pettit <jpettit@nicira.com>2009-08-06 18:04:36 -0700
commite7bd7d78b1e1dbc2162f991374c7889c7d7bf60c (patch)
tree3b0953d2dc163d7344427b5f223f73c86c15eeed
parent8093d640ac758c062515b2819e633dd4e19c516a (diff)
downloadopenvswitch-e7bd7d78b1e1dbc2162f991374c7889c7d7bf60c.tar.gz
daemon: Remove short options from daemon library
The daemon library provides a few short options, but these then take away their availability from programs that wish to use the library. Since the daemon options are generally going to be called from a script (which doesn't care how much typing is involved), we'll only provide long options.
-rw-r--r--lib/daemon.c13
-rw-r--r--lib/daemon.h21
-rw-r--r--lib/daemon.man22
-rw-r--r--utilities/ovs-discover.8.in17
-rw-r--r--utilities/ovs-discover.c15
-rwxr-xr-xxenserver/etc_init.d_vswitch8
6 files changed, 49 insertions, 47 deletions
diff --git a/lib/daemon.c b/lib/daemon.c
index a011d37fe..1e3f00295 100644
--- a/lib/daemon.c
+++ b/lib/daemon.c
@@ -35,7 +35,7 @@ static bool detach;
static char *pidfile;
/* Create pidfile even if one already exists and is locked? */
-static bool force;
+static bool overwrite_pidfile;
/* Should we chdir to "/". */
static bool chdir_ = true;
@@ -85,7 +85,7 @@ set_no_chdir(void)
void
ignore_existing_pidfile(void)
{
- force = true;
+ overwrite_pidfile = true;
}
/* Sets up a following call to daemonize() to detach from the foreground
@@ -127,7 +127,7 @@ die_if_already_running(void)
{
pid_t pid = already_running();
if (pid) {
- if (!force) {
+ if (!overwrite_pidfile) {
ovs_fatal(0, "%s: already running as pid %ld",
get_pidfile(), (long int) pid);
} else {
@@ -239,10 +239,11 @@ daemon_usage(void)
{
printf(
"\nDaemon options:\n"
- " -D, --detach run in background as daemon\n"
+ " --detach run in background as daemon\n"
" --no-chdir do not chdir to '/'\n"
- " -P, --pidfile[=FILE] create pidfile (default: %s/%s.pid)\n"
- " -f, --force with -P, start even if already running\n",
+ " --pidfile[=FILE] create pidfile (default: %s/%s.pid)\n"
+ " --overwrite-pidfile with --pidfile, start even if already "
+ "running\n",
ovs_rundir, program_name);
}
diff --git a/lib/daemon.h b/lib/daemon.h
index d62dd4f01..d0c324cfc 100644
--- a/lib/daemon.h
+++ b/lib/daemon.h
@@ -22,17 +22,20 @@
#include <sys/types.h>
enum {
- OPT_NO_CHDIR = UCHAR_MAX + 2048
+ OPT_DETACH = UCHAR_MAX + 2048,
+ OPT_NO_CHDIR,
+ OPT_OVERWRITE_PIDFILE,
+ OPT_PIDFILE,
};
-#define DAEMON_LONG_OPTIONS \
- {"detach", no_argument, 0, 'D'}, \
- {"no-chdir", no_argument, 0, OPT_NO_CHDIR}, \
- {"force", no_argument, 0, 'f'}, \
- {"pidfile", optional_argument, 0, 'P'}
+#define DAEMON_LONG_OPTIONS \
+ {"detach", no_argument, 0, OPT_DETACH}, \
+ {"no-chdir", no_argument, 0, OPT_NO_CHDIR}, \
+ {"pidfile", optional_argument, 0, OPT_PIDFILE}, \
+ {"overwrite-pidfile", no_argument, 0, OPT_OVERWRITE_PIDFILE}
#define DAEMON_OPTION_HANDLERS \
- case 'D': \
+ case OPT_DETACH: \
set_detach(); \
break; \
\
@@ -40,11 +43,11 @@ enum {
set_no_chdir(); \
break; \
\
- case 'P': \
+ case OPT_PIDFILE: \
set_pidfile(optarg); \
break; \
\
- case 'f': \
+ case OPT_OVERWRITE_PIDFILE: \
ignore_existing_pidfile(); \
break;
diff --git a/lib/daemon.man b/lib/daemon.man
index cc1a2b569..ea0561daf 100644
--- a/lib/daemon.man
+++ b/lib/daemon.man
@@ -1,28 +1,27 @@
.TP
-\fB-P\fR[\fIpidfile\fR], \fB--pidfile\fR[\fB=\fIpidfile\fR]
+\fB--pidfile\fR[\fB=\fIpidfile\fR]
Causes a file (by default, \fB\*(PN.pid\fR) to be created indicating
the PID of the running process. If \fIpidfile\fR is not specified, or
if it does not begin with \fB/\fR, then it is created in
\fB@RUNDIR@\fR.
.TP
-\fB-f\fR, \fB--force\fR
-By default, when \fB-P\fR or \fB--pidfile\fR is specified and the
-specified pidfile already exists and is locked by a running process,
-\fB\*(PN\fR refuses to start. Specify \fB-f\fR or \fB--force\fR
-to cause it to instead overwrite the pidfile.
+\fB--overwrite-pidfile\fR
+By default, when \fB--pidfile\fR is specified and the specified pidfile
+already exists and is locked by a running process, \fB\*(PN\fR refuses
+to start. Specify \fB--overwrite-pidfile\fR to cause it to instead
+overwrite the pidfile.
-When \fB-P\fR or \fB--pidfile\fR is not specified, this option has no
-effect.
+When \fB--pidfile\fR is not specified, this option has no effect.
.TP
-\fB-D\fR, \fB--detach\fR
+\fB--detach\fR
Causes \fB\*(PN\fR to detach itself from the foreground session and
run as a background process.
.TP
\fB--no-chdir\fR
-By default, when \fB-D\fR or \fB--detach\fR is specified, \fB\*(PN\fR
+By default, when \fB--detach\fR is specified, \fB\*(PN\fR
changes its current working directory to the root directory after it
detaches. Otherwise, invoking \fB\*(PN\fR from a carelessly chosen
directory would prevent the administrator from unmounting the file
@@ -34,5 +33,4 @@ useful for collecting core files, since it is common behavior to write
core dumps into the current working directory and the root directory
is not a good directory to use.
.IP
-This option has no effect when neither \fB-D\fR nor \fB--detach\fR is
-specified.
+This option has no effect when \fB--detach\fR is not specified.
diff --git a/utilities/ovs-discover.8.in b/utilities/ovs-discover.8.in
index d38ce9ee7..e9685d9e0 100644
--- a/utilities/ovs-discover.8.in
+++ b/utilities/ovs-discover.8.in
@@ -74,7 +74,7 @@ This option is mutually exclusive with \fB--exit-without-bind\fR and
\fB--exit-after-bind\fR.
.TP
-\fB-P\fR[\fIpidfile\fR], \fB--pidfile\fR[\fB=\fIpidfile\fR]
+\fB--pidfile\fR[\fB=\fIpidfile\fR]
Causes a file (by default, \fBovs\-discover.pid\fR) to be created indicating
the PID of the running process. If \fIpidfile\fR is not specified, or
if it does not begin with \fB/\fR, then it is created in
@@ -85,14 +85,13 @@ this this option has no effect when one of \fB--exit-without-bind\fR,
\fB--exit-after-bind\fR, or \fB--no-detach\fR is also given.
.TP
-\fB-f\fR, \fB--force\fR
-By default, when \fB-P\fR or \fB--pidfile\fR is specified and the
-specified pidfile already exists and is locked by a running process,
-\fBcontroller\fR refuses to start. Specify \fB-f\fR or \fB--force\fR
-to cause it to instead overwrite the pidfile.
-
-When \fB-P\fR or \fB--pidfile\fR is not specified, this option has no
-effect.
+\fB--overwrite-pidfile\fR
+By default, when \fB--pidfile\fR is specified and the specified pidfile
+already exists and is locked by a running process, \fBcontroller\fR refuses
+to start. Specify \fB--overwrite-pidfile\fR to cause it to instead
+overwrite the pidfile.
+
+When \fB--pidfile\fR is not specified, this option has no effect.
.so lib/vlog.man
.so lib/common.man
diff --git a/utilities/ovs-discover.c b/utilities/ovs-discover.c
index 047410546..308c40531 100644
--- a/utilities/ovs-discover.c
+++ b/utilities/ovs-discover.c
@@ -282,7 +282,7 @@ parse_options(int argc, char *argv[])
OPT_ACCEPT_VCONN = UCHAR_MAX + 1,
OPT_EXIT_WITHOUT_BIND,
OPT_EXIT_AFTER_BIND,
- OPT_NO_DETACH,
+ OPT_NO_DETACH
};
static struct option long_options[] = {
{"accept-vconn", required_argument, 0, OPT_ACCEPT_VCONN},
@@ -290,8 +290,8 @@ parse_options(int argc, char *argv[])
{"exit-after-bind", no_argument, 0, OPT_EXIT_AFTER_BIND},
{"no-detach", no_argument, 0, OPT_NO_DETACH},
{"timeout", required_argument, 0, 't'},
- {"pidfile", optional_argument, 0, 'P'},
- {"force", no_argument, 0, 'f'},
+ {"pidfile", optional_argument, 0, OPT_PIDFILE},
+ {"overwrite-pidfile", no_argument, 0, OPT_OVERWRITE_PIDFILE},
{"verbose", optional_argument, 0, 'v'},
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'V'},
@@ -328,11 +328,11 @@ parse_options(int argc, char *argv[])
detach_after_bind = false;
break;
- case 'P':
+ case OPT_PIDFILE:
set_pidfile(optarg);
break;
- case 'f':
+ case OPT_OVERWRITE_PIDFILE:
ignore_existing_pidfile();
break;
@@ -396,8 +396,9 @@ usage(void)
vlog_usage();
printf("\nOther options:\n"
" -t, --timeout=SECS give up discovery after SECS seconds\n"
- " -P, --pidfile[=FILE] create pidfile (default: %s/%s.pid)\n"
- " -f, --force with -P, start even if already running\n"
+ " --pidfile[=FILE] create pidfile (default: %s/%s.pid)\n"
+ " --overwrite-pidfile with --pidfile, start even if already "
+ "running\n"
" -h, --help display this help message\n"
" -V, --version display version information\n",
ovs_rundir, program_name);
diff --git a/xenserver/etc_init.d_vswitch b/xenserver/etc_init.d_vswitch
index eba4baf0f..3927223c2 100755
--- a/xenserver/etc_init.d_vswitch
+++ b/xenserver/etc_init.d_vswitch
@@ -152,9 +152,9 @@ function start_vswitchd {
if [ "$daemonize" != "y" ]; then
# Start in background and force a "success" message
action "Starting ovs-vswitchd ($strace_opt$valgrind_opt)" true
- (nice -n "$VSWITCHD_PRIORITY" $strace_opt $valgrind_opt "$vswitchd" -P"$VSWITCHD_PIDFILE" -D $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF") &
+ (nice -n "$VSWITCHD_PRIORITY" $strace_opt $valgrind_opt "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF") &
else
- action "Starting ovs-vswitchd" nice -n "$VSWITCHD_PRIORITY" "$vswitchd" -P"$VSWITCHD_PIDFILE" -D $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF"
+ action "Starting ovs-vswitchd" nice -n "$VSWITCHD_PRIORITY" "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF"
fi
}
@@ -191,9 +191,9 @@ function start_brcompatd {
if [ "$daemonize" != "y" ]; then
# Start in background and force a "success" message
action "Starting ovs-brcompatd ($strace_opt$valgrind_opt)" true
- (nice -n "$VSWITCHD_PRIORITY" $strace_opt $valgrind_opt "$brcompatd" --appctl-command="$appctl_cmd" -P$BRCOMPATD_PIDFILE -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF") &
+ (nice -n "$VSWITCHD_PRIORITY" $strace_opt $valgrind_opt "$brcompatd" --appctl-command="$appctl_cmd" --pidfile=$BRCOMPATD_PIDFILE -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF") &
else
- action "Starting ovs-brcompatd" nice -n "$BRCOMPATD_PRIORITY" $strace_opt $valgrind_opt "$brcompatd" --appctl-command="$appctl_cmd" -P$BRCOMPATD_PIDFILE -D -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF"
+ action "Starting ovs-brcompatd" nice -n "$BRCOMPATD_PRIORITY" $strace_opt $valgrind_opt "$brcompatd" --appctl-command="$appctl_cmd" --pidfile=$BRCOMPATD_PIDFILE --detach -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_CONF"
fi
}