0

Linux では、それぞれ独自のコマンド ライン引数を使用し、それぞれ独自のディレクトリで、ほぼ同一のプロセスをいくつか (マシンごとに 20 個、少なくとも 8 台のサーバーで) 開始する必要があります。私はこれを手でやりたくない。

これを行う最善の方法は何ですか?/etc/init.d を使用して httpd が行う方法ですか (その下でいくつかのプロセスが実行されているのがわかります)、それとも他の方法がありますか?

追加する必要がありますが、それらが死んだら、および/または特定の時間に自動的に起動するようにしたいので、おそらく少なくともcronとmonitがソリューションの一部である必要がありますか?

4

1 に答える 1

2

プロセスを制御端末に関連付ける必要がある場合は、GNU Screenまたはtmuxの使用を検討できます。Screen を使用すると、次のような構成ファイルを作成できます。

startup_message off
screen -t foo 1 /path/to/someprogram
screen -t bar 2 /path/to/another

それらをバックグラウンド化するだけで問題ない場合は、... バックグラウンド化します。

#!/bin/bash

/usr/bin/nohup /path/to/someprogram &
/usr/bin/nohup /path/to/another &

echo "All done!"

死んだときに再起動する必要がある場合は、リランチャーでラップすることを検討してください。たとえば、 daemontoolsを見てください。または、次のような単純なシェル スクリプト:

while ! /path/to/flakeybinary; do
  echo "Darn, died again." >&2
done
echo "Exited normally, yay."
于 2012-06-12T20:17:55.280 に答える