【命令】nice — 調整程式啟動並執行優先順序
【格式】nice [OPTION] [command [arguments...]]
【說明】
在當前程式運行優先順序基礎之上調整指定值得到新的程式運行優先順序,用新的程式運行優先順序運行命令列"command [arguments...]"。優先順序的範圍為-20 ~ 19 等40個等級,其中數值越小優先順序越高,數值越大優先順序越低,既-20的優先順序最高, 19的優先順序最低。若調整後的程式運行優先順序高於-20,則就以優先順序-20來運行命令列;若調整後的程式運行優先順序低於19,則就以優先順序19來運行命令列。若 nice命令未指定優先順序的調整值,則以預設值10來調整程式運行優先順序,既在當前程式運行優先順序基礎之上增加10。
若不帶任何參數運行命令nice,則顯示出當前的程式運行優先順序。
例1:
1. # nice
2. 0
3. #
在例1中,不用任何參數執行命令"nice"(見第1行),所以顯示出當前的程式運行優先順序為0(見第2行)。由此可知系統預設的程式運行優先順序為0。
例2:
1. # nice nice
2. 10
3. #
在例2中,第1個nice命令以預設值來調整第2個nice命令啟動並執行優先順序,既在系統預設的程式運行優先順序0的基礎之上增加10,得到新的程式運行優先順序10,然後以優先順序10來運行第2個nice命令;第2個nice命令顯示當前程式啟動並執行優先順序為10。
例3:
1. # nice nice nice
2. 19
3. #
在例3中,第1個nice命令以預設值來調整第2個nice命令啟動並執行優先順序,既在系統預設的程式運行優先順序0的基礎之上增加10,得到新的程式運行優先順序10,然後以優先順序10來運行第2個nice命令;第2個nice命令又以預設值來調整第3個nice命令啟動並執行優先順序,既在第2個nice命令運行優先順序基礎之上再增加10,得到新的程式運行優先順序20,但20大於最高程式運行優先順序19,所以以優先順序19來運行第3個nice命令;第3個nice命令顯示當前程式啟動並執行優先順序為19。
【參數說明】
-n, --adjustment=ADJUST 指定程式運行優先順序的調整值。
優先順序的範圍為-20~19,當調整後的優先順序小於-20時,以優先順序-20 來運行程式(見例4);當調整後的優先順序大於19時,則以19的優先順序運行程式(見例5)。
例4:
1. # nice -n -21 nice
2. -20
3. #
在例4中,以參數“-n”的形式指定程式運行優先順序的調整值,系統預設優先順序0加上調整值-21得到新的優先順序-21(小於-20),因此程式最終的運行優先順序為-20。
例5:
1. # nice --adjustment=20 nice
2. 19
3. #
在例5中,以參數“--adjustment=ADJUST”的形式指定程式運行優先順序的調整值,系統預設優先順序0加上調整值20得到新的優先順序20(大於19),因此程式最終的運行優先順序為19。
注意:在使用“--adjustment=ADJUST”形式指定程式運行優先順序的調整值時,中間的等號可以省略。在例5中,也可運行命令列“nice --adjustment 20 nice”。
還可以使用參數“-ADJUST”的形式來指定程式運行優先順序的調整值,其中,ADJUST為指定的程式運行優先順序調整值,可以為負數,也可以為正數,如例6所示。
例6:
1. # nice --1 nice
2. -1
3. # nice -+1 nice
4. 1
5. # nice -1 nice
6. 1
7. #
在例6中,參數“--1”、“-+1”和 “-1”中的第一個字元“-”都是文法定義的指定程式運行優先順序調整值的標誌符,第一個字元“-”之後的值為指定的程式運行優先順序的調整值。
在nice命令中,可以同時指定多個程式運行優先順序調整值,但只有最後一次指定的數值有效,如例7所示。
例7:
1. # nice -n -20 --adjustment +19 -3 nice
2. 3
3. #
在例7中,通過命令列同時指定了優先順序調整值“-20”、“+9”和“3”,但最後生效的程式運行優先順序調整值為最後指定的數值“3”。
注意:只有具有root許可權的使用者才可以調整高程式啟動並執行優先順序,既指定的調整值可以為負數,如例8所示。
例8:
1. # su thinkerABC
2. $ nice -n -1 nice
3. nice: cannot set priority: Permission denied
4. $ nice -n 1 nice
5. 1
6. $
在例8中,我們將使用者改為非root使用者權限的thinkerABC,這時調高程式運行優先順序1個層級時操作失敗,系統提示許可權不足。而調低優先順序1個層級時,操作就可以成功。
--help 顯示nice命令的協助資訊,詳見例9。
例9:
1. # nice --help
2. Usage: nice [OPTION] [COMMAND [ARG]...]
3. Run COMMAND with an adjusted scheduling priority.
4. With no COMMAND, print the current scheduling priority. ADJUST is 10
5. by default. Range goes from -20 (highest priority) to 19 (lowest).
6.
7. -n, --adjustment=ADJUST increment priority by ADJUST first
8. --help display this help and exit
9. --version output version information and exit
10.
11. Report bugs to <bug-sh-utils@gnu.org>.
12. #
在例9中,用參數“--help”執行nice命令,則顯示該命令的協助資訊,見例9的第2行~第11行。
--version 輸出nice命令的版本資訊,詳見例10。
例10:
1. # nice --version
2. nice (GNU sh-utils) 2.0.12
3. Written by David MacKenzie.
4.
5. Copyright (C) 2002 Free Software Foundation, Inc.
6. This is free software; see the source for copying conditions. There is NO
7. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8. #
在例10中,用參數“--version”運行nice命令,則顯示該命令的版本資訊,見例10的第2行~第7行。(註:本例是在Red Hat 8.0下啟動並執行結果。)
參考文獻:
[1] Linux man pages