]> Zhao Yanbai Git Server - minix.git/commitdiff
Importing usr.bin/nice 32/1032/2
authorThomas Cort <tcort@minix3.org>
Thu, 10 Oct 2013 20:29:19 +0000 (16:29 -0400)
committerThomas Cort <tcort@minix3.org>
Sat, 12 Oct 2013 11:01:11 +0000 (07:01 -0400)
Replaces commands/nice. No Minix-specific changes needed.

Change-Id: I3e089497dcd86893aa28e3a973496af5b1689f45

commands/Makefile
commands/nice/Makefile [deleted file]
man/man1/Makefile
man/man1/nice.1 [deleted file]
releasetools/nbsd_ports
usr.bin/Makefile
usr.bin/nice/Makefile [new file with mode: 0644]
usr.bin/nice/nice.1 [new file with mode: 0644]
usr.bin/nice/nice.c [moved from commands/nice/nice.c with 53% similarity]

index 6a9f98bef089f0b1d401d4b353fba5fbc9221408..f17c9df330622412f992433ab5de8cabe26e91d6 100644 (file)
@@ -16,7 +16,7 @@ SUBDIR=       add_route arp ash at backup btrace \
        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 \
diff --git a/commands/nice/Makefile b/commands/nice/Makefile
deleted file mode 100644 (file)
index e784436..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-PROG=  nice
-MAN=
-
-.include <bsd.prog.mk>
index c3898ee9912974747f8f15f66f4b42888d602dad..9692df0daddf2ffbc597b1ceec3ee68125c4a23b 100644 (file)
@@ -11,7 +11,7 @@ MAN=  ash.1 at.1 \
        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 \
diff --git a/man/man1/nice.1 b/man/man1/nice.1
deleted file mode 100644 (file)
index 0a11c18..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-.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>.
index 1832622e39e964be42177a0f6c6be692218cbf29..e51468bba03644017a50c7e9df58a6cece150a84 100644 (file)
 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
index fdc0de695f3d6308c0d8151b85b28b2385ff6dea..69d89761ae22efd0c01740f03b8d3324560bd52f 100644 (file)
@@ -18,7 +18,7 @@ SUBDIR= \
        machine make man \
        mkdep mktemp \
        \
-       nbperf newgrp nvi \
+       nbperf newgrp nice nvi \
        passwd \
        printf \
        rev \
diff --git a/usr.bin/nice/Makefile b/usr.bin/nice/Makefile
new file mode 100644 (file)
index 0000000..0a9c4e7
--- /dev/null
@@ -0,0 +1,6 @@
+#      @(#)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>
diff --git a/usr.bin/nice/nice.1 b/usr.bin/nice/nice.1
new file mode 100644 (file)
index 0000000..87c211a
--- /dev/null
@@ -0,0 +1,120 @@
+.\"    $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.
similarity index 53%
rename from commands/nice/nice.c
rename to usr.bin/nice/nice.c
index db251633fa0e1d19aef4d78b304ae070492ca274..de5fe5b0cab6834713aa6480b4acd74795e64943 100644 (file)
@@ -1,6 +1,8 @@
+/*     $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;
@@ -86,23 +101,23 @@ main(int argc, char *argv[])
        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);
 }