2012-02-29 50 views
1

在我們的開發服務器上,我們有一堆用於Java JAR的shell腳本包裝器。使用CRON調度程序,我們每天都會爲了不同的目的而觸發這些腳本。如何動態更新PID?

對於性能測試,我們希望在運行時將腳本的PID更改爲1的優先級。

現在,我們從命令行或使用TOP來完成它。

有沒有辦法在shell腳本中做到這一點,而不會「損害」進程以及其他進程?

回答

7

這應該工作:

renice -n 1 $$ 

之後腳本本身將有1一個很好的價值這也將適用於所有新的孩子,雖然沒有以前分叉的。

+0

我的'renice'手冊頁在「$$」上沒有顯示任何內容。你能解釋一下這個意義嗎? – Chris 2012-02-29 18:09:41

+1

對不起,我忘了澄清那部分:$$被bash擴展爲正在運行的腳本的PID。更多信息在這裏:http://tldp.org/LDP/abs/html/internalvariables.html#PROCCID – 2012-02-29 18:10:29

+0

我得到一個'renice:1:setpriority:操作不允許13711:舊的優先級0,新的優先級0'。我必須是「根」嗎?我不應該,對嗎? – Chris 2012-02-29 18:14:33