web-dev-qa-db-ja.com

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

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

trap OnExit EXIT

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

これは可能ですか?

1
TCZ8

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を参照してください。

1
psimon