
我正在使用以下陷阱:
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 上的問答。