Linux では、いくつかのサーバーをバックグラウンド サービスとして生成したいと考えています。
それらの 1 つが終了コード != 0 で終了するとすぐに、それらはすべてSIGTERM され、行きたくない場合は 3 秒の猶予期間後に KILL されます。
Ctrl-C が押されたときも同じことが起こります。
おおまかに相当するものが欲しい
set -e
server1 &
server2 &
server3 &
wait (+ kill on error)
(残念ながら、上記のコードには、前述のすべてのプロパティが含まれているわけではありません。)
子供が Ctrl-C シグナルを盗んだりエスケープしたりすることはできません。
BashおよびPythonでのソリューションを受け入れます(を使用subprocess
)。Python の場合、標準ライブラリ関数のみを使用できます (最初にモジュールをダウンロードする必要はありませんpip
)。これを別の言語で行うクールな方法がある場合は、遠慮なくそれを示してください。
Mac OSでも動作する場合はボーナスポイント。