2012-04-28 147 views
2

我想要一個cron作業來設置一些服務的優先級,但是,父級作爲root運行,其餘的作爲另一個用戶運行。但是,父母會使用優先ID重新生成進程,因此cron作業將不得不以更多的方式運行。有沒有辦法做到這一點來設置優先級?什麼我想設置更高使用shell獲取父PID?

例子:

1 S root  13826  1 0 81 0 - 3289 rt_sig 00:33 ?  00:00:00 nginx: master process /usr/local/sbin/nginx -c /etc/nginx/nginx.conf 
5 S root  15474  1 0 75 0 - 3848 -  Apr22 ?  00:01:37 /usr/local/apache/bin/httpd -k start -DSSL 
5 S nobody 19511 13826 0 75 0 - 3297 -  13:06 ?  00:00:10 nginx: worker process 
5 S nobody 19512 13826 0 78 0 - 3361 -  13:06 ?  00:00:11 nginx: worker process 
5 S nobody 19513 13826 0 75 0 - 3681 -  13:06 ?  00:00:09 nginx: worker process 
5 S nobody 19514 13826 0 78 0 - 3297 -  13:06 ?  00:00:07 nginx: worker process 
5 S root  19521 15474 0 77 0 - 3561 -  13:06 ?  00:00:00 /usr/local/apache/bin/httpd -k start -DSSL 
5 S nobody 19522 15474 0 78 0 - 3848 431083 13:06 ?  00:00:00 /usr/local/apache/bin/httpd -k start -DSSL 
5 S nobody 19523 15474 0 75 0 - 3952 semtim 13:06 ?  00:00:00 /usr/local/apache/bin/httpd -k start -DSSL 
5 S nobody 19524 15474 0 75 0 - 3951 semtim 13:06 ?  00:00:00 /usr/local/apache/bin/httpd -k start -DSSL 
5 S nobody 19525 15474 0 75 0 - 3949 semtim 13:06 ?  00:00:00 /usr/local/apache/bin/httpd -k start -DSSL 
5 S nobody 19526 15474 0 78 0 - 3947 -  13:06 ?  00:00:00 /usr/local/apache/bin/httpd -k start -DSSL 
5 S nobody 19527 15474 0 78 0 - 3949 semtim 13:06 ?  00:00:00 /usr/local/apache/bin/httpd -k start -DSSL 

我知道有http://www.rfxn.com/projects/system-priority/但據我所知,通過UID唯一做的。

+0

第四個參數它很明顯,你有一個特定的問題,但我不太明白。你能說一點嗎? – thb 2012-04-28 18:22:30

+1

我不明白你想做什麼,但在Bash中,$ PPID變量保存其父進程的PID。 – 2012-04-28 18:30:55

+0

我只需要能夠改變以下服務的優先級,但不能通過用戶ID或PID,因爲他們改變。我需要能夠grep用戶ID(像沒有人),然後拉媽媽PID,所以我可以設置優先級。 – 2012-04-29 05:41:59

回答

3

的問題不是很清楚,你可以很容易地找到父PID雖然通過查看/proc/18357/stat當前進程

父PID的PID替換18357就在那裏

+0

有沒有更好的方法?可能使用'ps'命令?也許是 – balki 2012-11-27 07:47:48

+0

。從這個文件中提取數據比分離ps進程和提取數據效率要高得多 – 2012-11-27 18:05:28

+0

請注意,如果進程命令行包含「/ proc/18357/stat」中的第四個字段,則不會運行空間。我認爲從'/ proc/18357/status'文件的'PPid:'行獲得值更可靠,如下所示:'grep'^ PPid:'「/ proc/$$/status」|切割-f 2「 – oliver 2017-09-01 22:31:32