Nice 命令

系统内核依据进程的优先级决定了进程使用CPU的时间, 而这个nice命令则是改变进程优先级的一个工具.

进程优先级的范围, 是[-20, 20], 不能多也不能少.

需要 注意 的是, -20 是最高的优先级, 系统会优先运行这个进程, 而 20则是最低的优先级.

还需要 注意 的是, 只有root才能设置负数的优先级, 普通用户只能设置从0到20的优先级.

语法也很简单:

  1. nice -[value from -20 to 20] command

举例子:

  1. $ ./nice-test.sh &
  2. [3] 13009
  3. $ ps axl | grep nice-test
  4. 0 509 13009 12863 17 0 4652 972 wait S pts/1 0:00 /bin/bash ./nice-test.sh
  5. [注意: 第六列的优先级的值为0.]
  1. $ nice -10 ./nice-test.sh &
  2. [1] 13016

然后

  1. $ ps axl | grep nice-test
  2. 0 509 13016 12863 30 10 4236 0:00 /bin/bash ./nice-test.sh
  3. [注意: 这里的优先级变成10了(优先级降低了)]

下面在看一个错误:

  1. $ nice --10 ./nice-test.sh &
  2. [1] 13021
  3. $ nice: cannot set priority: Permission denied

为啥哩?

刚才我们说过, 只有root才能设置负数的优先级:

  1. # nice --10 ./nice-test.sh &
  2. [1] 13060
  3. # ps axl | grep nice-test
  4. 4 0 13060 13024 10 -10 5388 964 wait S< pts/1 0:00 /bin/bash ./nice-test.sh 964 wait S< pts/1