diff --git a/include/usage.src.h b/include/usage.src.h index 53ee7943a..94a3256b1 100644 --- a/include/usage.src.h +++ b/include/usage.src.h @@ -434,7 +434,7 @@ INSERT " [-/ DIR] [-n NICE] [-m BYTES] [-d BYTES] [-o N]\n" \ " [-p N] [-f BYTES] [-c BYTES] PROG ARGS" #define chpst_full_usage "\n\n" \ - "Change the process state and run PROG\n" \ + "Change the process state, run PROG\n" \ "\nOptions:" \ "\n -u USER[:GRP] Set uid and gid" \ "\n -U USER[:GRP] Set $UID and $GID in environment" \ @@ -457,17 +457,17 @@ INSERT #define setuidgid_trivial_usage \ "USER PROG ARGS" #define setuidgid_full_usage "\n\n" \ - "Set uid and gid to USER's uid and gid, removing all supplementary\n" \ - "groups and run PROG" + "Set uid and gid to USER's uid and gid, drop supplementary group ids,\n" \ + "run PROG" #define envuidgid_trivial_usage \ "USER PROG ARGS" #define envuidgid_full_usage "\n\n" \ - "Set $UID to USER's uid and $GID to USER's gid and run PROG" + "Set $UID to USER's uid and $GID to USER's gid, run PROG" #define envdir_trivial_usage \ "DIR PROG ARGS" #define envdir_full_usage "\n\n" \ "Set various environment variables as specified by files\n" \ - "in the directory dir and run PROG" + "in the directory DIR, run PROG" #define softlimit_trivial_usage \ "[-a BYTES] [-m BYTES] [-d BYTES] [-s BYTES] [-l BYTES]\n" \ " [-f BYTES] [-c BYTES] [-r BYTES] [-o N] [-p N] [-t N]\n" \ @@ -538,24 +538,49 @@ INSERT #define bbconfig_trivial_usage \ "" #define bbconfig_full_usage "\n\n" \ - "Print the config file which built busybox" + "Print the config file used by busybox build" #define chrt_trivial_usage \ "[OPTIONS] [PRIO] [PID | PROG ARGS]" #define chrt_full_usage "\n\n" \ - "Manipulate real-time attributes of a process\n" \ + "Change scheduling priority and class for a process\n" \ "\nOptions:" \ "\n -p Operate on PID" \ - "\n -r Set SCHED_RR scheduling" \ - "\n -f Set SCHED_FIFO scheduling" \ - "\n -o Set SCHED_OTHER scheduling" \ - "\n -m Show min and max priorities" \ + "\n -r Set SCHED_RR class" \ + "\n -f Set SCHED_FIFO class" \ + "\n -o Set SCHED_OTHER class" \ + "\n -m Show min/max priorities" \ #define chrt_example_usage \ "$ chrt -r 4 sleep 900; x=$!\n" \ "$ chrt -f -p 3 $x\n" \ "You need CAP_SYS_NICE privileges to set scheduling attributes of a process" +#define nice_trivial_usage \ + "[-n ADJUST] [PROG ARGS]" +#define nice_full_usage "\n\n" \ + "Change scheduling priority, run PROG\n" \ + "\nOptions:" \ + "\n -n ADJUST Adjust priority by ADJUST" \ + +#define renice_trivial_usage \ + "{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID...]" +#define renice_full_usage "\n\n" \ + "Change scheduling priority for a running process\n" \ + "\nOptions:" \ + "\n -n Adjust current nice value (smaller is faster)" \ + "\n -p Process id(s) (default)" \ + "\n -g Process group id(s)" \ + "\n -u Process user name(s) and/or id(s)" \ + +#define ionice_trivial_usage \ + "[-c 1-3] [-n 0-7] [-p PID] [PROG]" +#define ionice_full_usage "\n\n" \ + "Change I/O priority and class\n" \ + "\nOptions:" \ + "\n -c Class. 1:realtime 2:best-effort 3:idle" \ + "\n -n Priority" \ + #define cp_trivial_usage \ "[OPTIONS] SOURCE DEST" #define cp_full_usage "\n\n" \ @@ -1299,7 +1324,7 @@ INSERT #define flock_trivial_usage \ "[-sxun] FD|{FILE [-c] PROG ARGS}" #define flock_full_usage "\n\n" \ - "[Un]lock file descriptor, or lock FILE and run PROG\n" \ + "[Un]lock file descriptor, or lock FILE, run PROG\n" \ "\nOptions:" \ "\n -s Shared lock" \ "\n -x Exclusive lock (default)" \ @@ -2038,14 +2063,6 @@ INSERT "\n -Z Set security context" \ ) -#define ionice_trivial_usage \ - "[-c 1-3] [-n 0-7] [-p PID] [PROG]" -#define ionice_full_usage "\n\n" \ - "Change I/O scheduling class and priority\n" \ - "\nOptions:" \ - "\n -c Class. 1:realtime 2:best-effort 3:idle" \ - "\n -n Priority" \ - /* would need to make the " | " optional depending on more than one selected: */ #define ip_trivial_usage \ "[OPTIONS] {" \ @@ -2965,13 +2982,6 @@ INSERT "\n -p Display PID/Program name for sockets" \ ) -#define nice_trivial_usage \ - "[-n ADJUST] [PROG ARGS]" -#define nice_full_usage "\n\n" \ - "Run PROG with modified scheduling priority\n" \ - "\nOptions:" \ - "\n -n ADJUST Adjust priority by ADJUST" \ - #define nmeter_trivial_usage \ "format_string" #define nmeter_full_usage "\n\n" \ @@ -3425,16 +3435,6 @@ INSERT "\n" \ "\nOther options are silently ignored" \ -#define renice_trivial_usage \ - "{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID...]" -#define renice_full_usage "\n\n" \ - "Change priority of running processes\n" \ - "\nOptions:" \ - "\n -n Adjust current nice value (smaller is faster)" \ - "\n -p Process id(s) (default)" \ - "\n -g Process group id(s)" \ - "\n -u Process user name(s) and/or id(s)" \ - #define scriptreplay_trivial_usage \ "timingfile [typescript [divisor]]" #define scriptreplay_full_usage "\n\n" \ diff --git a/miscutils/chrt.c b/miscutils/chrt.c index e2b7f8ae0..3d0da58ca 100644 --- a/miscutils/chrt.c +++ b/miscutils/chrt.c @@ -5,33 +5,35 @@ * * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ - #include #include "libbb.h" #ifndef _POSIX_PRIORITY_SCHEDULING #warning your system may be foobared #endif + static const struct { int policy; - char name[12]; + char name[sizeof("SCHED_OTHER")]; } policies[] = { {SCHED_OTHER, "SCHED_OTHER"}, {SCHED_FIFO, "SCHED_FIFO"}, {SCHED_RR, "SCHED_RR"} }; +//TODO: add +// -b, SCHED_BATCH +// -i, SCHED_IDLE + static void show_min_max(int pol) { - const char *fmt = "%s min/max priority\t: %d/%d\n\0%s not supported?\n"; + const char *fmt = "%s min/max priority\t: %u/%u\n"; int max, min; + max = sched_get_priority_max(pol); min = sched_get_priority_min(pol); - if (max >= 0 && min >= 0) - printf(fmt, policies[pol].name, min, max); - else { - fmt += 29; - printf(fmt, policies[pol].name); - } + if ((max|min) < 0) + fmt = "%s not supported\n"; + printf(fmt, policies[pol].name, min, max); } #define OPT_m (1<<0)