Replaces commands/nice. No Minix-specific changes needed.
Change-Id: I3e089497dcd86893aa28e3a973496af5b1689f45
less loadkeys loadramdisk logger look lp \
lpd lspci mail MAKEDEV \
mesg mined mkfifo \
- mount mt netconf nice nohup \
+ mount mt netconf nohup \
nonamed od paste patch \
ping postinstall poweroff pr prep printroot \
profile progressbar pr_routes ps pwdauth \
+++ /dev/null
-PROG= nice
-MAN=
-
-.include <bsd.prog.mk>
last.1 loadfont.1 loadkeys.1 logger.1 \
look.1 lp.1 lspci.1 mail.1 \
mesg.1 mixer.1 \
- mkproto.1 mount.1 mt.1 nice.1 nohup.1 od.1 \
+ mkproto.1 mount.1 mt.1 nohup.1 od.1 \
paste.1 ping.1 playwave.1 pr.1 prep.1 \
profile.1 ps.1 rcp.1 recwave.1 \
remsync.1 rget.1 rlogin.1 rsh.1 rz.1 \
+++ /dev/null
-.TH NICE 1
-.SH NAME
-nice \- invoke command with higher or lower scheduling priority
-.SH SYNOPSIS
-\fBnice\fP [\fB\-n\fP increment] \fIutility\fP [\fIargument\fP...]
-.SH DESCRIPTION
-The
-.B nice
-utility runs \fIutility\fP at a different scheduling priority than
-the default. The nicer the process is to others (the higher the
-increment), the less favourable the scheduling is. Super-users
-can give a negative increment, meaning scheduling is more favourable
-than the default.
-.SH OPTIONS
-.TP
-.B \-n \fIincrement
-the increment value sets how nice the invoked command will be. 0 is
-the same priority as regular processes. 10 is the default.
-The range is -20 to 20.
-.SH SEE ALSO
-getpriority(2), setpriority(2)
-.SH AUTHOR
-This
-.B nice
-utility was imported from FreeBSD. This manual page was written
-Ben Gras <beng@few.vu.nl>.
2010/10/15 05:46:48,usr.bin/mkdep
2009/08/15 20:44:56,usr.bin/mktemp
2012/10/17 12:00:00,usr.bin/nbperf
+2013/10/10 12:00:00,usr.bin/nice
2012/10/17 12:00:00,usr.bin/nvi
2010/05/14 17:28:23,usr.bin/newgrp
2012/10/17 12:00:00,usr.bin/passwd
machine make man \
mkdep mktemp \
\
- nbperf newgrp nvi \
+ nbperf newgrp nice nvi \
passwd \
printf \
rev \
--- /dev/null
+# @(#)Makefile 8.1 (Berkeley) 6/6/93
+# $NetBSD: Makefile,v 1.3 1995/08/31 23:30:56 jtc Exp $
+
+PROG= nice
+
+.include <bsd.prog.mk>
--- /dev/null
+.\" $NetBSD: nice.1,v 1.15 2012/03/22 07:58:19 wiz Exp $
+.\"
+.\" Copyright (c) 1980, 1990, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)nice.1 8.1 (Berkeley) 6/6/93
+.\"
+.Dd June 6, 1993
+.Dt NICE 1
+.Os
+.Sh NAME
+.Nm nice
+.Nd execute a utility with an altered scheduling priority
+.Sh SYNOPSIS
+.Nm
+.Op Fl n Ar increment
+.Ar utility
+.Op Ar argument ...
+.Sh DESCRIPTION
+.Nm
+runs
+.Ar utility
+at an altered scheduling priority.
+If an
+.Ar increment
+is given, it is used; otherwise
+an increment of 10 is assumed.
+The super-user can run utilities with priorities higher than normal by using
+a negative
+.Ar increment .
+The priority can be adjusted over a
+range of -20 (the highest) to 20 (the lowest).
+A priority of 19 or 20
+will prevent a process from taking any cycles from others at nice 0 or
+better.
+.Pp
+Available options:
+.Bl -tag -width indent
+.It Fl n Ar increment
+A positive or negative decimal integer used to modify the system scheduling
+priority of
+.Ar utility .
+.El
+.Sh EXIT STATUS
+The
+.Nm
+utility exits with one of the following values:
+.Bl -tag -width indent
+.It 1-125
+An error occurred in the
+.Nm
+utility.
+.It 126
+The
+.Ar utility
+was found but could not be invoked.
+.It 127
+The
+.Ar utility
+could not be found.
+.El
+.Pp
+Otherwise, the exit status of
+.Nm
+will be that of
+.Ar utility .
+.Sh COMPATIBILITY
+The historic
+.Fl Ns Ar increment
+option has been deprecated but is still supported in this implementation.
+.Sh SEE ALSO
+.Xr csh 1 ,
+.Xr getpriority 2 ,
+.Xr setpriority 2 ,
+.Xr renice 8
+.Sh STANDARDS
+The
+.Nm
+utility conforms to
+.St -p1003.2-92 .
+.Sh HISTORY
+A
+.Nm
+utility appeared in
+.At v6 .
+.Sh BUGS
+.Nm
+is built into
+.Xr csh 1
+with a slightly different syntax than described here.
+The form
+.Ql nice +10
+nices to positive nice, and
+.Ql nice \-10
+can be used
+by the super-user to give a process more of the processor.
+/* $NetBSD: nice.c,v 1.15 2008/07/21 14:19:24 lukem Exp $ */
+
/*
- * Copyright (c) 1989, 1993, 1994
- * The Regents of the University of California. All rights reserved.
+ * Copyright (c) 1989 The Regents of the University of California.
+ * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* SUCH DAMAGE.
*/
-#include <sys/types.h>
+#include <sys/cdefs.h>
+#ifndef lint
+__COPYRIGHT("@(#) Copyright (c) 1989\
+ The Regents of the University of California. All rights reserved.");
+#endif /* not lint */
+
+#ifndef lint
+#if 0
+static char sccsid[] = "@(#)nice.c 5.4 (Berkeley) 6/1/90";
+#endif
+__RCSID("$NetBSD: nice.c,v 1.15 2008/07/21 14:19:24 lukem Exp $");
+#endif /* not lint */
+
#include <sys/time.h>
#include <sys/resource.h>
-#include <ctype.h>
-#include <errno.h>
-#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
-#include <unistd.h>
#include <string.h>
+#include <limits.h>
+#include <locale.h>
+#include <ctype.h>
+#include <errno.h>
+#include <err.h>
+#include <unistd.h>
#define DEFNICE 10
-void usage(void);
+static void usage(void) __dead;
int
-main(int argc, char *argv[])
+main(int argc, char **argv)
{
- long niceness = DEFNICE;
- int ch;
char *ep;
- char arg1[10];
+ int niceness = DEFNICE;
+ int c;
+ long tmp;
- /* Obsolescent syntax: -number, --number */
- if (argc >= 2 && argv[1][0] == '-' && (argv[1][1] == '-' ||
- isdigit((unsigned char)argv[1][1])) && strcmp(argv[1], "--") != 0) {
- snprintf(arg1, sizeof(arg1), "-n%s", argv[1] + 1);
- argv[1] = arg1;
- }
+ setprogname(argv[0]);
+ (void)setlocale(LC_ALL, "");
+
+ /* handle obsolete -number syntax */
+ if (argc > 1 && argv[1][0] == '-' &&
+ isdigit((unsigned char)argv[1][1])) {
+ niceness = atoi (argv[1] + 1);
+ argc--; argv++;
+ }
- while ((ch = getopt(argc, argv, "n:")) != -1) {
- switch (ch) {
+ while ((c = getopt (argc, argv, "n:")) != -1) {
+ switch (c) {
case 'n':
errno = 0;
- niceness = strtol(optarg, &ep, 10);
- if (ep == optarg || *ep != '\0' || errno ||
- niceness < INT_MIN || niceness > INT_MAX) {
- fprintf(stderr, "%s: invalid nice value", optarg);
- return 1;
- }
+ tmp = strtol(optarg, &ep, 10);
+ if (*ep != '\0' || tmp < INT_MIN || tmp > INT_MAX)
+ errx(EXIT_FAILURE, "invalid argument: `%s'",
+ optarg);
+ niceness = (int)tmp;
break;
default:
usage();
+ break;
}
}
argc -= optind;
errno = 0;
niceness += getpriority(PRIO_PROCESS, 0);
if (errno) {
- perror("getpriority");
- return 1;
+ err(EXIT_FAILURE, "getpriority");
+ /* NOTREACHED */
}
- if (setpriority(PRIO_PROCESS, 0, (int)niceness)) {
- perror("setpriority");
- return 1;
+ if (setpriority(PRIO_PROCESS, 0, niceness) == -1) {
+ warn("setpriority");
}
- errno = 0;
- execvp(*argv, argv);
- perror("execvp");
- return 1;
+
+ (void)execvp(argv[0], &argv[0]);
+ err((errno == ENOENT || errno == ENOTDIR) ? 127 : 126, "%s", argv[0]);
+ /* NOTREACHED */
}
-void
+static void
usage(void)
{
-
- (void)fprintf(stderr, "usage: nice [-n incr] utility [arguments]\n");
- exit(1);
+ (void)fprintf(stderr,
+ "Usage: %s [ -n increment ] utility [ argument ...]\n",
+ getprogname());
+ exit(EXIT_FAILURE);
}