「nice(1)」-

使用指定的调度优先级运行程序

命令语法格式

nice [OPTION] [COMMAND [ARG]…]

命令描述

如果没有给出参数,那么nice会打印出当前的niceness值。否则,命令nice根据调整的niceness值来运行命令COMMAND。默认情况下,它的niceness增加10。

niceness值至少从-20开始(具有高优先级的进程会获得更多资源,因此会减慢其他进程)最高到19(具有较低优先级的进程,它自身运行缓慢,但对其他运行进程的速度影响较小)。某些系统可能具有更广泛的niceness范围;相反,其他系统可能会强制实施更严格的限制。如果尝试将niceness设置为支持范围之外的数值,则会被视为尝试使用系统支持的最小值或最大值。

不要把niceness与调度优先级混淆,调度优先级允许应用程序确定调度线程的运行顺序。与优先级不同,niceness是对调度程序的建议,调度程序可以自由忽略。此外,作为一个术语,POSIX根据一个nice值定义了nice的行为,这是一个niceness和最小niceness之间的非负差异。虽然nice符合POSIX,但它的文档和诊断使用术语“niceness”来与历史实践兼容。

命令支持的选项及含义

需要提供给长选项的参数也必须提供给相应的短选项。

-n adjustment, –adjustment=adjustment
在命令的niceness中添加由adjustment指定的值,而不是默认的10。如果adjustment是负数值的,并且你缺少适当的权限,则命令nice会发出警告,此外就像指定adjustment为零一样。

为了兼容性,命令nice还支持过时的选项语法-adjustment,但是新脚本中应该使用新的–adjustment(-n)选项调整。

–help
显示帮助并退出。

–version
显示版本信息。

注意事项

参数COMMAND不能是特殊的内置程序(请参阅特殊内置实用程序)。

由于Shell别名和内置的nice函数,在脚本中直接使用nice可能会获得与此处描述的功能不同的功能。通过env调用它(即env nice)以避免Shell的干扰。或者通过绝对路径进行调用。

注意,要更改现有进程的niceness值,需要使用renice(1)命令。

命令nice仅安装在具有POSIX函数setpriority系统上,因此可移植脚本不应依赖于非POSIX平台中nice的存在。

退出状态

0 没有指定niceness值,并打印当前的niceness值。

125 命令nice自身发生错误。

126 找到命令COMMAND,但是无法调用。

127 无法找到命令COMMAND。

其他的状态值则是由命令COMMAND返回的。

使用示例

运行非交互式程序有时很有用:

# nice factor 4611686018427387903

由于nice打印出当前的niceness值,你可以通过自己调用自己来演示它是如何工作的:

默认行为是将Nicessness值增加“10”:

# nice

0

# nice nice

10

# nice -n 10 nice

10

参数adjustment是相对于当前的niceness值。在下一个例子中,第一个nice的使用默认的10来调用第二个nice,然后它以3来运行最后一个nice:

# nice nice -n 3 nice

13

指定一个大于支持范围以外的niceness值会被重置为支持的最大值:

# nice -n 10000000000 nice

只有特权用户才能运行具有较低优点的进程:

$ nice -n -1 nice

nice: cannot set niceness: Permission denied

0

相关手册

nice(2), renice(1)

查看在线手册:http://www.gnu.org/software/coreutils/nice

查看info手册:info ‘(coreutils) nice invocation’

参考文献

  • man 1 nice, version GNU coreutils 8.28

更新日志

  • 07/02/2018 创建文章