s-s-d and manpage updates
Hi Everyone,
Some changes for your consideration.
diff -ur dpkg-1.14.16.6.orig/utils/start-stop-daemon.c dpkg-1.14.16.6/utils/start-stop-daemon.c
--- dpkg-1.14.16.6.orig/utils/start-stop-daemon.c 2008-01-26 13:16:35.000000000 -0500
+++ dpkg-1.14.16.6/utils/start-stop-daemon.c 2008-01-28 15:29:14.000000000 -0500
@@ -318,8 +318,8 @@
"Matching options (at least one is required):\n"
" -p|--pidfile <pid-file> pid file to check\n"
" -x|--exec <executable> program to start/check if it is running\n"
-" -n|--name <process-name> stop processes with this name\n"
-" -u|--user <username|uid> stop processes owned by this user\n"
+" -n|--name <process-name> process name to check\n"
+" -u|--user <username|uid> process owner to check\n"
"\n"
"Options:\n"
" -g|--group <group|gid> run process as this group\n"
@@ -668,7 +668,7 @@
badusage("--start needs --exec or --startas");
if (mpidfile && pidfile == NULL)
- badusage("--make-pidfile is only relevant with --pidfile");
+ badusage("--make-pidfile requires --pidfile");
if (background && !start)
badusage("--background is only relevant with --start");
@@ -936,7 +936,7 @@
start_argv_0_p = *pid_argv_p;
else {
/* Tests indicate that this never happens, since
- * kvm_getargv itselfe cuts of tailing stuff. This is
+ * kvm_getargv itself cuts of tailing stuff. This is
* not what the manpage says, however. */
strncpy(buf, *pid_argv_p, (end_argv_0_p - start_argv_0_p));
buf[(end_argv_0_p - start_argv_0_p) + 1] = '\0';
--- /usr/share/man/man8/start-stop-daemon.8.gz
+++ /tmp/startstop-daemon.8.gz.12569 2008-01-28 16:42:20.000000000 -0500
@@ -1,4 +1,4 @@
-.TH start\-stop\-daemon 8 "2008-01-20" "Debian Project" "dpkg utilities"
+.TH start\-stop\-daemon 8 "2008-01-28" "Debian Project" "dpkg utilities"
.SH NAME
start\-stop\-daemon \- start and stop system daemon programs
.
@@ -29,7 +29,7 @@
.BR \-\-stop
is specified. For daemons which have long-lived children
which need to live through a
-.BR \-\-stop
+.BR \-\-stop ,
you must specify a pidfile.
.
.SH COMMANDS
@@ -44,8 +44,8 @@
If such a process does not exist, it starts an
instance, using either the executable specified by
.BR \-\-exec ,
-(or, if specified, by
-.BR \-\-startas ).
+or, if specified, by
+.BR \-\-startas .
Any arguments given after
.BR \-\-
on the command line are passed unmodified to the program being
@@ -65,7 +65,7 @@
.BR \-\-oknodo
is specified). If
.B \-\-retry
-is specified then
+is specified, then
.B start\-stop\-daemon
will check that the process(es) have terminated.
.TP
@@ -120,7 +120,7 @@
If
.I timeout
is specified instead of
-.I schedule
+.IR schedule ,
then the schedule
.IB signal / timeout /KILL/ timeout
is used, where
@@ -178,6 +178,7 @@
.BR : ,
then the group or gid in the same way
as you would for the `chown' command (\fIuser\fP\fB:\fP\fIgroup\fP).
+If a user is specified without a group, the primary GID for that user is used.
When using this option
you must realize that the primary and supplemental groups are set as well,
even if the
@@ -231,7 +232,7 @@
file will not be removed when stopping the program.
.B NOTE:
This feature may not work in all cases. Most notably when the program
-being executed forks from its main process. Because of this it is usually
+being executed forks from its main process. Because of this, it is usually
only useful when combined with the
.B \-\-background
option.
@@ -239,6 +240,47 @@
.BR \-v ", " \-\-verbose
Print verbose informational messages.
.
+.SH EXIT STATUS
+.B start\-stop\-daemon
+returns 0 if the requested action was performed, or if
+.B \-\-oknodo
+is specified and either
+.B \-\-start
+was specified and a matching process was already running, or
+.B \-\-stop
+was specified and there were no matching processes. If
+.B \-\-oknodo
+was not specified and nothing was done, 1 is returned. If
+.B --stop
+and
+.B --retry
+were specified, but the end of the schedule was reached and the processes were
+still running, the error value is 2. For all other errors, the status is 3.
+.
+.SH NOTES
+.B --exec
+can fail to detect a running daemon after the executable is replaced (eg.
+during a package upgrade), since the executable is stored with a different
+inode.
+.
+.SH EXAMPLE
+.TP
+.RB "Start the " food " daemon, unless one is already running (a process named food, running as user food, with pid in food.pid):"
+.nf
+start-stop-daemon --start --oknodo --user food --name food --pidfile /var/run/food.pid --startas /usr/sbin/food --chuid food -- --daemon
+.fi
+.TP
+.RB "Send " SIGTERM " to " food " and wait up to 5 seconds for it to stop:"
+.nf
+start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry 5
+.fi
+.TP
+.RB "Demonstration of a custom schedule for stopping " food :
+.nf
+start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry=TERM/30/KILL/5
+.fi
+.LP
+.
.SH AUTHORS
Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> based on
a previous version by Ian Jackson <ian@chiark.greenend.org.uk>.
Reply to: