From: Matthias Koenig Date: Mon, 16 Jul 2007 11:10:59 +0000 (+0200) Subject: schedutils: fix chrt docs and pid=0 usage X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=697d58e867d6c2a5746f495cb5cab24994ce808e;p=util-linux schedutils: fix chrt docs and pid=0 usage Fix some documentation bugs for chrt. Make it work with PID 0, which means current process. Signed-off-by: Matthias Koenig --- diff --git a/schedutils/chrt.1 b/schedutils/chrt.1 index effa1903..01f7650c 100644 --- a/schedutils/chrt.1 +++ b/schedutils/chrt.1 @@ -79,13 +79,13 @@ output version information and exit .SH USAGE .TP The default behavior is to run a new command:: -chrt [prio] [command] [arguments] +chrt prio command [arguments] .TP You can also retrieve the real-time attributes of an existing task: -chrt -p [pid] +chrt -p pid .TP Or set them: -chrt -p [prio] [pid] +chrt -p prio pid .SH PERMISSIONS A user must possess .BR CAP_SYS_NICE diff --git a/schedutils/chrt.c b/schedutils/chrt.c index 02ff3809..30892d8b 100644 --- a/schedutils/chrt.c +++ b/schedutils/chrt.c @@ -46,7 +46,7 @@ static void show_usage(const char *cmd) fprintf(stderr, " -b, --batch " "set policy to SCHED_BATCH\n"); fprintf(stderr, " -f, --fifo " - "set policy to SCHED_FF\n"); + "set policy to SCHED_FIFO\n"); fprintf(stderr, " -p, --pid " "operate on existing given pid\n"); fprintf(stderr, " -m, --max " @@ -146,7 +146,7 @@ int main(int argc, char *argv[]) { int i, policy = SCHED_RR, priority = 0, verbose = 0; struct sched_param sp; - pid_t pid = 0; + pid_t pid = -1; struct option longopts[] = { { "batch", 0, NULL, 'b' }, @@ -205,12 +205,12 @@ int main(int argc, char *argv[]) } - if ((pid && argc - optind < 1) || (!pid && argc - optind < 2)) { + if (((pid > -1) && argc - optind < 1) || ((pid == -1) && argc - optind < 2)) { show_usage(argv[0]); return 1; } - if (pid && (verbose || argc - optind == 1)) { + if ((pid > -1) && (verbose || argc - optind == 1)) { show_rt_info("current", pid); if (argc - optind == 1) return 0; @@ -224,6 +224,8 @@ int main(int argc, char *argv[]) return 1; } + if (pid == -1) + pid = 0; sp.sched_priority = priority; if (sched_setscheduler(pid, policy, &sp) == -1) { perror("sched_setscheduler");