使用 renice 指令更改 Unix/Linux 上面程式執行的優先權(Scheduling Priority)

在 Linux 中如果要改變程式執行的優先權,可以使用 nice 指令,但如果是執行到一半的程式要更改執行優先權的話,就沒辦法用 nice,這時候就可以使用 renice 這個指令。

renice 是專門用於更改正在執行程式的 niceness 值,讓程式在不需要重新執行的情況下,就可以馬上改變執行的優先權,其使用方式如下:
renice NUM PID
其中 PID 是行程(想要更改 niceness 值的行程) ID,而 NUM 是新的 niceness 值。

以下是一些範例:

Example 1
將行程 ID 為 2343 的行程 niceness 值設為 19:
renice 19 2343

Example 2
將行程 ID 為 2343 的行程與所有 seal 使用者的行程 niceness 值都加 1:
renice +1 2343 -u seal

Example 3
將行程 ID 為 2343 與 32 的行程、所有 owner 為 daemon 與 root 的行程 niceness 都加 1:
renice +1 987 -u daemon root -p 32

一般的使用者只能使用 renice 指令更改自己的的程式 niceness 值,而且 niceness 只能調高不能調低(因為安全性的因素),但如果是 root 則沒有這樣的限制,以 root 權限執行 renice 就可以設定任意行程的 niceness 值,niceness 可以從 -20 到 20(niceness 值如果設為 20 則代表該行程會在整個系統沒有其他的工作時才被執行)。


參考資料:
http://www.cyberciti.biz/faq/howto-change-unix-linux-process-priority/
Man page of renice(1)
本站已經搬家了,欲查看最新的文章,請至 G. T. Wang 新網站