X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=debianutils%2Fstart_stop_daemon.c;h=c8b7fa8f21d912b3cfdb0ef735b350cdcb2359da;hb=9a4100cf53f75356854ce752374babf8135c3f42;hp=45c277a5316545717302a0aab7ea624c5d1eacdd;hpb=036585a911a5fe6c2cd77b808dd9150500f37272;p=oweals%2Fbusybox.git diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 45c277a53..c8b7fa8f2 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -87,44 +87,15 @@ Misc options: //usage: "[OPTIONS] [-S|-K] ... [-- ARGS...]" //usage:#define start_stop_daemon_full_usage "\n\n" //usage: "Search for matching processes, and then\n" -//usage: "-K: stop all matching processes.\n" -//usage: "-S: start a process unless a matching process is found.\n" -//usage: IF_FEATURE_START_STOP_DAEMON_LONG_OPTIONS( -//usage: "\nProcess matching:" -//usage: "\n -u,--user USERNAME|UID Match only this user's processes" -//usage: "\n -n,--name NAME Match processes with NAME" -//usage: "\n in comm field in /proc/PID/stat" -//usage: "\n -x,--exec EXECUTABLE Match processes with this command" -//usage: "\n in /proc/PID/{exe,cmdline}" -//usage: "\n -p,--pidfile FILE Match a process with PID from the file" -//usage: "\n All specified conditions must match" -//usage: "\n-S only:" -//usage: "\n -x,--exec EXECUTABLE Program to run" -//usage: "\n -a,--startas NAME Zeroth argument" -//usage: "\n -b,--background Background" -//usage: IF_FEATURE_START_STOP_DAEMON_FANCY( -//usage: "\n -N,--nicelevel N Change nice level" -//usage: ) -//usage: "\n -c,--chuid USER[:[GRP]] Change to user/group" -//usage: "\n -m,--make-pidfile Write PID to the pidfile specified by -p" -//usage: "\n-K only:" -//usage: "\n -s,--signal SIG Signal to send" -//usage: "\n -t,--test Match only, exit with 0 if a process is found" -//usage: "\nOther:" -//usage: IF_FEATURE_START_STOP_DAEMON_FANCY( -//usage: "\n -o,--oknodo Exit with status 0 if nothing is done" -//usage: "\n -v,--verbose Verbose" -//usage: ) -//usage: "\n -q,--quiet Quiet" -//usage: ) -//usage: IF_NOT_FEATURE_START_STOP_DAEMON_LONG_OPTIONS( +//usage: "-K: stop all matching processes\n" +//usage: "-S: start a process unless a matching process is found\n" //usage: "\nProcess matching:" //usage: "\n -u USERNAME|UID Match only this user's processes" //usage: "\n -n NAME Match processes with NAME" //usage: "\n in comm field in /proc/PID/stat" //usage: "\n -x EXECUTABLE Match processes with this command" //usage: "\n command in /proc/PID/cmdline" -//usage: "\n -p FILE Match a process with PID from the file" +//usage: "\n -p FILE Match a process with PID from FILE" //usage: "\n All specified conditions must match" //usage: "\n-S only:" //usage: "\n -x EXECUTABLE Program to run" @@ -133,18 +104,17 @@ Misc options: //usage: IF_FEATURE_START_STOP_DAEMON_FANCY( //usage: "\n -N N Change nice level" //usage: ) -//usage: "\n -c USER[:[GRP]] Change to user/group" -//usage: "\n -m Write PID to the pidfile specified by -p" +//usage: "\n -c USER[:[GRP]] Change user/group" +//usage: "\n -m Write PID to pidfile specified by -p" //usage: "\n-K only:" //usage: "\n -s SIG Signal to send" -//usage: "\n -t Match only, exit with 0 if a process is found" +//usage: "\n -t Match only, exit with 0 if found" //usage: "\nOther:" //usage: IF_FEATURE_START_STOP_DAEMON_FANCY( //usage: "\n -o Exit with status 0 if nothing is done" //usage: "\n -v Verbose" //usage: ) //usage: "\n -q Quiet" -//usage: ) #include @@ -451,15 +421,17 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) INIT_G(); - /* -K or -S is required; they are mutually exclusive */ - /* -p is required if -m is given */ - /* -xpun (at least one) is required if -K is given */ - /* -xa (at least one) is required if -S is given */ - /* -q turns off -v */ - opt_complementary = "K:S:K--S:S--K:m?p:K?xpun:S?xa" - IF_FEATURE_START_STOP_DAEMON_FANCY("q-v"); - opt = GETOPT32(argv, "KSbqtma:n:s:u:c:x:p:" - IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:R:"), + opt = GETOPT32(argv, "^" + "KSbqtma:n:s:u:c:x:p:" + IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:R:") + /* -K or -S is required; they are mutually exclusive */ + /* -p is required if -m is given */ + /* -xpun (at least one) is required if -K is given */ + /* -xa (at least one) is required if -S is given */ + /* -q turns off -v */ + "\0" + "K:S:K--S:S--K:m?p:K?xpun:S?xa" + IF_FEATURE_START_STOP_DAEMON_FANCY("q-v"), LONGOPTS &startas, &cmdname, &signame, &userspec, &chuid, &execname, &pidfile IF_FEATURE_START_STOP_DAEMON_FANCY(,&opt_N)