man: default to ascii
[oweals/busybox.git] / miscutils / chrt.c
index 4477d084cb73c9fc4840749978aae6fd8e2e39b5..f2f559fd72d9909ecf3c149fcf0ceb4088bbd7b2 100644 (file)
@@ -5,11 +5,24 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
+
+//usage:#define chrt_trivial_usage
+//usage:       "[-prfom] [PRIO] [PID | PROG ARGS]"
+//usage:#define chrt_full_usage "\n\n"
+//usage:       "Change scheduling priority and class for a process\n"
+//usage:     "\n       -p      Operate on PID"
+//usage:     "\n       -r      Set SCHED_RR class"
+//usage:     "\n       -f      Set SCHED_FIFO class"
+//usage:     "\n       -o      Set SCHED_OTHER class"
+//usage:     "\n       -m      Show min/max priorities"
+//usage:
+//usage:#define chrt_example_usage
+//usage:       "$ chrt -r 4 sleep 900; x=$!\n"
+//usage:       "$ chrt -f -p 3 $x\n"
+//usage:       "You need CAP_SYS_NICE privileges to set scheduling attributes of a process"
+
 #include <sched.h>
 #include "libbb.h"
-#ifndef _POSIX_PRIORITY_SCHEDULING
-#warning your system may be foobared
-#endif
 
 static const struct {
        int policy;
@@ -53,23 +66,25 @@ int chrt_main(int argc UNUSED_PARAM, char **argv)
        const char *current_new;
        int policy = SCHED_RR;
 
-       /* at least 1 arg; only one policy accepted */
-       opt_complementary = "-1:r--fo:f--ro:o--rf";
+       /* only one policy accepted */
+       opt_complementary = "r--fo:f--ro:o--rf";
        opt = getopt32(argv, "+mprfo");
+       if (opt & OPT_m) { /* print min/max and exit */
+               show_min_max(SCHED_FIFO);
+               show_min_max(SCHED_RR);
+               show_min_max(SCHED_OTHER);
+               fflush_stdout_and_exit(EXIT_SUCCESS);
+       }
        if (opt & OPT_r)
                policy = SCHED_RR;
        if (opt & OPT_f)
                policy = SCHED_FIFO;
        if (opt & OPT_o)
                policy = SCHED_OTHER;
-       if (opt & OPT_m) { /* print min/max */
-               show_min_max(SCHED_FIFO);
-               show_min_max(SCHED_RR);
-               show_min_max(SCHED_OTHER);
-               fflush_stdout_and_exit(EXIT_SUCCESS);
-       }
 
        argv += optind;
+       if (!argv[0])
+               bb_show_usage();
        if (opt & OPT_p) {
                pid_str = *argv++;
                if (*argv) { /* "-p <priority> <pid> [...]" */