summaryrefslogtreecommitdiffstats
path: root/man2/nice.2
blob: 64c4974f3d7d0fb8587337a7da825a58979c53e2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
.\" Copyright (c) 1992 Drew Eckhardt <drew@cs.colorado.edu>, March 28, 1992
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Modified by Michael Haardt <michael@moria.de>
.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1996-11-04 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 2001-06-04 by aeb
.\" Modified 2004-05-27 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.TH nice 2 (date) "Linux man-pages (unreleased)"
.SH NAME
nice \- change process priority
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <unistd.h>
.P
.BI "int nice(int " inc );
.fi
.P
.RS -4
Feature Test Macro Requirements for glibc (see
.MR feature_test_macros 7 ):
.RE
.P
.BR nice ():
.nf
    _XOPEN_SOURCE
        || /* Since glibc 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
.fi
.SH DESCRIPTION
.BR nice ()
adds
.I inc
to the nice value for the calling thread.
(A higher nice value means a lower priority.)
.P
The range of the nice value is +19 (low priority) to \-20 (high priority).
Attempts to set a nice value outside the range are clamped to the range.
.P
Traditionally, only a privileged process could lower the nice value
(i.e., set a higher priority).
However, since Linux 2.6.12, an unprivileged process can decrease
the nice value of a target process that has a suitable
.B RLIMIT_NICE
soft limit; see
.MR getrlimit 2
for details.
.SH RETURN VALUE
On success, the new nice value is returned (but see NOTES below).
On error, \-1 is returned, and
.I errno
is set to indicate the error.
.P
A successful call can legitimately return \-1.
To detect an error, set
.I errno
to 0 before the call, and check whether it is nonzero after
.BR nice ()
returns \-1.
.SH ERRORS
.TP
.B EPERM
The calling process attempted to increase its priority by
supplying a negative
.I inc
but has insufficient privileges.
Under Linux, the
.B CAP_SYS_NICE
capability is required.
(But see the discussion of the
.B RLIMIT_NICE
resource limit in
.MR setrlimit 2 .)
.SH VERSIONS
.SS C library/kernel differences
POSIX.1 specifies that
.BR nice ()
should return the new nice value.
However, the raw Linux system call returns 0 on success.
Likewise, the
.BR nice ()
wrapper function provided in glibc 2.2.3 and earlier returns 0 on success.
.P
Since glibc 2.2.4, the
.BR nice ()
wrapper function provided by glibc provides conformance to POSIX.1 by calling
.MR getpriority 2
to obtain the new nice value, which is then returned to the caller.
.SH STANDARDS
POSIX.1-2008.
.SH HISTORY
POSIX.1-2001, SVr4, 4.3BSD.
.\" SVr4 documents an additional
.\" .B EINVAL
.\" error code.
.SH NOTES
For further details on the nice value, see
.MR sched 7 .
.P
.IR Note :
the addition of the "autogroup" feature in Linux 2.6.38 means that
the nice value no longer has its traditional effect in many circumstances.
For details, see
.MR sched 7 .
.SH SEE ALSO
.MR nice 1 ,
.MR renice 1 ,
.MR fork 2 ,
.MR getpriority 2 ,
.MR getrlimit 2 ,
.MR setpriority 2 ,
.MR capabilities 7 ,
.MR sched 7