システムサービスから呼び出されるC ++プログラムがあります。プログラムはすぐには呼び出されませんが、「&」で区切られた別のスクリプト内にネストされます。
サービスを停止すると、プログラムはSIGTERMを非常に迅速に2回受信します。私はSIGTERMを一度だけ送らなければならないことを学びました。
別のプロセスグループでサービスなしでスクリプトチェーンを開始すると、グループを終了すると、プログラムは期待どおりに一度だけシグナルを受け取ります。これは、スクリプトの何かが複数の信号を引き起こす状況を排除する必要があります。
デフォルトプログラムの代わりに使用するbashスクリプトがある場合、シグナルtrap ... SIGTERM
は一度だけ受信されます。奇妙な。
複数の信号の原因は何ですか?