1. nice
名称
nice - 以修改过的调度优先级运行程序
摘要
nice [选项] [命令 [ARG]...]
描述
用调整过的优先级运行程序,这会影响进程调度。当没有参数时输出的是当前优先级. 调度优先的值介于-20(最高优先级)到19(最低优先级)之间
参数的使用
-n, --adjustment=N
添加整数N给此目标的优先级(默认是10)
提示: 不同系统的shell可能会有自己所属版本的nice命令,它会覆盖或者丢弃这里所讲的一些用法,所以在使用此命令时请参考你自己的shell文档去查看一些使用细节和帮助
用例
注意:nice命令允许普通用户降低脚本或者命令的优先级,但是却不允许用户提升脚本或者命令的优先级,这是一种安全机制
[root@foundation36 shelltest]# nice -n -5 ./nice.sh > niceout &
[2] 6152
[kiosk@foundation36 shelltest]$ nice -n 10 ./nice.sh >niceout &
[2] 6271
[kiosk@foundation36 shelltest]$ nice -n -10 ./nice.sh >niceout &
[1] 6258
nice: cannot set niceness: Permission denied
#没有提升优先级的权限
2. renice
名称
renice - 改变正在运行的程序的调度优先级
摘要
renice [-n] priority [-gpu] identifier...
描述
改变正在运行的一个或者多个进程的调度优先级,第一个参数是要修改的级别值,其他的参数会被转译为进程ID、进程的组ID、用户ID或者用户名称;
改变一个进程组的调度优先级就会改变组内所有进程的调度优先级;
改变一个用户的调度优先级会改变此用户所属的所有进程的调度优先级。
参数讲解
-n, --priority priority
指出需要指定给运行进程、进程组、用户的调度优先值,使用参数 -n 或者 --priority,而且使用时此选项必须为第一个参数
-g, --pgrp pgid...
强制将后接的参数转化为进程组ID
-u, --user name_or_uid...
强制将后接的参数转化为用户名称或者UID
-p, --pid pid...
强制将后接的参数转化为进程ID(默认操作)
用法示例
下例中将改变PID号码为987和32的进程的调度优先级,以及用户名称为daemon和root的用户所属的进程
renice +1 987 -u daemon root -p 32
注意
除了超级用户外的用户只能修改自己所属进程的调度优先级,而且只能增加优先级的值(降低调度优先级,此举处于安全考虑);超级用户能够修改进程的优先值为规定范围的任何数。