2016-09-25 1 views
1

私は複数のプロセスでデーモンを作成しています。最初のプロセスが完了したら、停止し、手動の割り込みSIGINT(CTRL + C)を必要とします。 この次のスクリプトが実行された後。SIGINTをシェルスクリプトに送る方法は?

プロセス1が正常終了しました。

SIGINTを追加して自動的に処理を進めるにはどうすればよいですか?

問題は簡単かもしれませんが、スクリプト内でどのように信号をトラップすることができるのでしょうか?しかし、タスクの完了後にどのように追加するのですか?

+1

'kill -2 $ pid'を使用して' SIGINT'を送信します。 – anubhava

+6

@anubhava AFAIKシグナル番号は移植可能ではありませんが、 'kill -INT $ pid'も動作します。 – melpomene

+1

おそらくhttp://stackoverflow.com/questions/5789642/how-to-send-controlc-from-a-bash-scriptはより良い複製です。 – tripleee

答えて

0

コマンドkill -TERM -$$を使用すると、現在のbashシェルとそのすべての子を強制終了できます。

編集:任意のプロセスが終了したとき、それはあなたが使用できる他のすべてを殺すように、それを変更するには

process1 & 
process2 & 
process3 & 
process4 

(process1 ; kill -TERM -$$) & 
(process2 ; kill -TERM -$$) & 
(process3 ; kill -TERM -$$) & 
process4 ; kill -TERM -$$ 

たとえば、次のようなプロセスを起動している、場合

+0

これはここで質問されているものとは異なる質問に答えるようです。 – tripleee

+0

@ tripleee、彼の質問はあまり明確ではありませんが、私が解決している正確な状況についての詳細を私の答えに更新しました。 – ccarton

関連する問題