我需要在Linux下啓動幾個(每臺機器至少有8臺服務器)幾乎相同的進程,每個進程都有自己的命令行參數,每個進程都在自己的目錄中。我不想親手做這件事。Linux中的多個進程
這樣做的最好方法是什麼?它是以/etc/init.d這種方式與httpd這樣做的(你會看到幾個進程正在運行),還是有其他方式?
我應該補充說,如果他們死亡,或者在某個特定時間,我也希望他們自動啓動,因此可能至少cron和monit必須成爲解決方案的一部分?
我需要在Linux下啓動幾個(每臺機器至少有8臺服務器)幾乎相同的進程,每個進程都有自己的命令行參數,每個進程都在自己的目錄中。我不想親手做這件事。Linux中的多個進程
這樣做的最好方法是什麼?它是以/etc/init.d這種方式與httpd這樣做的(你會看到幾個進程正在運行),還是有其他方式?
我應該補充說,如果他們死亡,或者在某個特定時間,我也希望他們自動啓動,因此可能至少cron和monit必須成爲解決方案的一部分?
如果您需要將流程與控制終端關聯,您可以考慮使用GNU Screen或tmux。隨着屏幕上,您可以創建類似的配置文件:
startup_message off
screen -t foo 1 /path/to/someprogram
screen -t bar 2 /path/to/another
如果你還好只是backgrounding他們,然後...只是背景他們。
#!/bin/bash
/usr/bin/nohup /path/to/someprogram &
/usr/bin/nohup /path/to/another &
echo "All done!"
如果您需要它們在死亡時重新啓動,那麼可以考慮將它們包裹在一個再發射器中。例如,請參閱daemontools。或者像一個簡單的shell腳本:
while ! /path/to/flakeybinary; do
echo "Darn, died again." >&2
done
echo "Exited normally, yay."
我要補充一點,我還希望他們能夠自動,如果他們死開始,和/或在一定的時間,所以可能至少cron和可能的monit必須是一部分的解決方案? – Ivan
如果您要添加到您的問題中,請單擊您的問題下的[編輯](http://stackoverflow.com/posts/11004050/edit)鏈接並編輯該問題。評論不應包含重要信息,否則您的問題將無法得到解答。 – ghoti
這些流程是否需要與控制終端相關聯,還是可以在後臺運行? – ghoti