niceness 與排程優先權(scheduling priority)是不一樣的,排程優先權是真正決定程式執行的先後順序,而 niceness 值只是提供給 scheduler 參考用,scheduler 甚至可以忽略這個值。
這是 nice 指令的使用方式:
nice -n NUM COMMAND
其中 COMMAND 是要執行的程式,而 NUM 就是指定此程式在執行時的 niceness 值。以下是一些使用範例:
Example 1
若直接執行 nice 不加任何參數,則會輸出現行的 niceness 值:
nice
輸出為:
0
Example 2
指定 niceness 值為 3:
nice -n 3 command-name
Example 3
執行 nice 如果不指定 niceness,則預設會把現行的 niceness 加 10:
nice nice
輸出為:
10
Example 4
只有 root 可以指定小於 0 的 niceness 值,一般使用者無法指定小於 0 的 niceness 值。
nice -n -1 nice
輸出為:
nice: cannot set niceness: Permission denied
0
sudo nice -n -1 nice
輸出為:
-1
Example 5
如果指定超過 19 的 niceness 值,nice 會直接使用 19 做為 niceness 值。
nice -n 10000000000 nice
輸出為:
19
參考資料:
http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/
http://linux.vbird.org/linux_basic/0440processcontrol.php#nice
沒有留言:
張貼留言