私は次のトラップを使用しています:
trap OnExit EXIT
そして、私のOnExit
関数で、何が起こったのかについて可能なすべての情報をキャプチャして、ログファイルに書き込むことができるようにしたいと思います。誰が、なぜ、どのように、いつなどを知りたいのですが。
これは可能ですか?
1。 who-別のユーザーがプロセスにシグナルを送信できないため、プロセス所有者ユーザーである可能性が最も高いです(rootユーザーは引き続き送信できますが、見つける方法がわかりませんrootがプロセスを強制終了した場合)。
2。 why-多分このようなもの:
echo "Why did you interrupted the process?" && read why && echo $why > log
(なぜあなたが何を意味するのかわかりません)。
3。 how-ユーザーがCtrl + C
を押した場合、またはkill
を介して割り込みを送信した場合、BASHは同じ信号を受信するため、正確にどのように行われたかを知ることは不可能です。割り込みが発生します。
4。 when-それは簡単です。date
コマンドを使用してください。
date > log
EDIT:「why」と「how」でシグナルタイプを決定する場合は、StackOverflowの this Q&Aを参照してください。