如何在腳本中取得終止訊號/訊息/原因?

如何在腳本中取得終止訊號/訊息/原因?

我正在使用以下陷阱:

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 上的問答。

相關內容