長時間実行されているいくつかのプロセスをバックグラウンドで生成し、その後ハングアップするシェルスクリプトを作成します。 SIGTERMを受け取ると、私はすべてのサブプロセスも終了させたい。シェルスクリプトがプロセスを起動し、SIGTERMで子プロセスを終了する
基本的には、「マスタープロセス」が必要です。
#!/bin/sh
sleep 600 &
PID1="$!"
sleep 600 &
PID2="$!"
# supposedly this should kill the child processes on SIGTERM.
trap "kill $PID1 $PID2" SIGTERM
wait
上記のスクリプトは、trap: 10: SIGTERM: bad trap
で失敗します。ここでは
は、私がこれまでに得たものです。
編集:私はこのスクリプトが正しく見え、期待通りに私の作品のUbuntu 9.04
シグナル番号を使用する必要があると思われる場合は、標準化されたものだけを使用してください。しかし、私はあなたのシステムの信号名を使うのが一番です。 – TheBonsai
あなたはそうです。私はこれが最後のバージョンであることを願っています... – itsadok
あなたのコードは、あなたが望む数多くのバージョンを持つことができます;-) – TheBonsai