summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko2008-05-07 14:52:01 +0000
committerDenis Vlasenko2008-05-07 14:52:01 +0000
commit647c20cfc2de89391c4b31da20b137248c13f302 (patch)
tree747bd25f0a5d0861537b08c48cc96b8afe504d1e
parent6bf05cf1ff3debbab2bcc482dffb821aa458177b (diff)
downloadbusybox-647c20cfc2de89391c4b31da20b137248c13f302.zip
busybox-647c20cfc2de89391c4b31da20b137248c13f302.tar.gz
start_stop_daemon: try to clarify intended meaning of the options
-rw-r--r--debianutils/start_stop_daemon.c41
1 files changed, 39 insertions, 2 deletions
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c
index 6919fe2..467deed 100644
--- a/debianutils/start_stop_daemon.c
+++ b/debianutils/start_stop_daemon.c
@@ -8,8 +8,45 @@
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
-/* NB: we have a problem here with /proc/NN/exe usage, similar to
- * one fixed in killall/pidof */
+/*
+This is how it is supposed to work:
+
+start-stop-daemon [OPTIONS] [--start|--stop] [[--] arguments...]
+
+One (only) of these must be given:
+ -S,--start Start
+ -K,--stop Stop
+
+Search for matching processes.
+If --stop is given, stop all matching processes (by sending a signal).
+If --start if given, start a new process unless a matching process was found.
+
+Options controlling process matching:
+ -u,--user USERNAME|UID Only consider this user's processes
+ -n,--name PROCESS_NAME Look for processes with matching argv[0]
+ or /proc/$PID/exe or /proc/$PID/stat (comm field).
+ Only basename is compared:
+ "ntpd" == "./ntpd" == "/path/to/ntpd".
+[TODO: can PROCESS_NAME be a full pathname? Should we require full match then
+with /proc/$PID/exe or argv[0] (comm can't be matched, it never contains path)]
+ -x,--exec EXECUTABLE Look for processes with matching /proc/$PID/exe.
+ Match is performed using device+inode.
+ -p,--pidfile PID_FILE Look for processes with PID from this file
+
+Options which are valid for --start only:
+ -x,--exec EXECUTABLE Program to run (1st arg of execvp). Mandatory.
+ -a,--startas NAME argv[0] (defaults to EXECUTABLE)
+ -b,--background Put process into background
+ -N,--nicelevel N Add N to process' nice level
+ -c,--chuid USER[:[GRP]] Change to specified user [and group]
+ -m,--make-pidfile Write PID to the pidfile
+ (both -m and -p must be given!)
+Misc options:
+ -s,--signal SIG Signal to send (default:TERM)
+ -o,--oknodo Exit with status 0 if nothing is done
+ -q,--quiet Quiet
+ -v,--verbose Verbose
+*/
#include <sys/resource.h>