スクリプト内で kill シグナル / メッセージ / 理由を取得するにはどうすればよいですか?

スクリプト内で kill シグナル / メッセージ / 理由を取得するにはどうすればよいですか?

私は次のトラップを使用しています:

trap OnExit EXIT

そして、私のOnExit関数では、何が起こったかについてのあらゆる情報をキャプチャして、それをログ ファイルに書き込むことができるようにしたいと考えています。誰が、なぜ、どのように、いつ、などについて知りたいのです。

これらは可能なのでしょうか?

答え1

1. 誰- 別のユーザーはプロセスにシグナルを送信できないため、プロセス所有者ユーザーになる可能性が最も高くなります (root ユーザーは引き続きシグナルを送信できますが、root がプロセスを強制終了したかどうかを確認する方法はわかりません)。

2. なぜ- おそらく次のようになります:

echo "Why did you interrupted the process?" && read why && echo $why > log

(なぜという意味なのかよく分かりません)。

3. 方法- ユーザーが を押すかCtrl + C、 を介して割り込みを送信するとkill、BASH は同じ信号を受信するため、私の知る限り、割り込みがどのように発生したかを正確に調べることは不可能です。

4. いつ- それは簡単です。次のdateコマンドを使用します:

date > log

編集:「なぜ」と「どのように」の信号タイプを決定することを意味している場合は、これStackOverflow の Q&A。

関連情報