1/* 2 * Mini renice implementation for busybox 3 * 4 * 5 * Copyright (C) 2000 Dave 'Kill a Cop' Cinege <dcinege@psychosis.com> 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 * 21 */ 22 23#include <stdio.h> 24#include <errno.h> 25#include <stdlib.h> 26#include <sys/time.h> 27#include <sys/resource.h> 28#include "busybox.h" 29 30 31extern int renice_main(int argc, char **argv) 32{ 33 int prio, status = EXIT_SUCCESS; 34 35 if (argc < 3) show_usage(); 36 37 prio = atoi(*++argv); 38 if (prio > 20) prio = 20; 39 if (prio < -20) prio = -20; 40 41 while (*++argv) { 42 int ps = atoi(*argv); 43 int oldp = getpriority(PRIO_PROCESS, ps); 44 45 if (setpriority(PRIO_PROCESS, ps, prio) == 0) { 46 printf("%d: old priority %d, new priority %d\n", ps, oldp, prio ); 47 } else { 48 perror_msg("%d: setpriority", ps); 49 status = EXIT_FAILURE; 50 } 51 } 52 53 return status; 54} 55