我想要一個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唯一做的。
第四個參數它很明顯,你有一個特定的問題,但我不太明白。你能說一點嗎? – thb 2012-04-28 18:22:30
我不明白你想做什麼,但在Bash中,$ PPID變量保存其父進程的PID。 – 2012-04-28 18:30:55
我只需要能夠改變以下服務的優先級,但不能通過用戶ID或PID,因爲他們改變。我需要能夠grep用戶ID(像沒有人),然後拉媽媽PID,所以我可以設置優先級。 – 2012-04-29 05:41:59