Script-A.sh から Script-B.sh へのシグナル送信をトラップしたいので、Script-A.sh で次のコマンドを使用します。
(SIGINT を Script-B.sh に送信)
kill -2 $PID_Script-B.sh
そして Script-B.sh では、シグナルをキャッチして関数 Clean を呼び出します
トラップ「クリーン」2
これは機能しません。代わりに、Script-B.sh は Clean !! を実行せずにすぐに強制終了されます。
また、ターミナルからそれをトラップするスクリプトに SIGINT を送信したい場合、 actrl-c
は正しくキャッチされますが、コマンドを介してシグナルを指定した場合はそうではありません。kill -2 $pid_of_script
SIGINT ( ctrl-c
VS kill -2 $pid_of_script
) を送信する 2 つの方法の違いと、スクリプトから別のスクリプトに SIGINT を送信する方法について何か考えはありますか?