123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /* renice.c - renice process
- *
- * Copyright 2013 CE Strake <strake888 at gmail.com>
- *
- * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/renice.html
- USE_RENICE(NEWTOY(renice, "<1gpun#|", TOYFLAG_USR|TOYFLAG_BIN))
- config RENICE
- bool "renice"
- default y
- help
- usage: renice [-gpu] -n INCREMENT ID...
- */
- #define FOR_renice
- #include "toys.h"
- GLOBALS(
- long n;
- )
- void renice_main(void) {
- int which = (toys.optflags & FLAG_g) ? PRIO_PGRP :
- ((toys.optflags & FLAG_u) ? PRIO_USER : PRIO_PROCESS);
- char **arg;
- for (arg = toys.optargs; *arg; arg++) {
- char *s = *arg;
- int id = -1;
- if (toys.optflags & FLAG_u) {
- struct passwd *p = getpwnam(s);
- if (p) id = p->pw_uid;
- } else {
- id = strtol(s, &s, 10);
- if (*s) id = -1;
- }
- if (id < 0) {
- error_msg("bad '%s'", *arg);
- continue;
- }
- if (setpriority(which, id, getpriority(which, id)+TT.n) < 0)
- perror_msg("setpriority %d", id);
- }
- }
|