我正在使用以下陷阱:
trap OnExit EXIT
在我的OnExit
函数中,我想捕获有关所发生事件的所有信息,以便我可以将其写入日志文件。我想知道谁、为什么、如何、何时等等。
这有可能吗?
答案1
1. 谁- 由于另一个用户无法向您的进程发送信号,因此它很可能是进程所有者用户(root 用户仍然可以,但我不知道如何确定 root 是否杀死您的进程)。
2. 为什么- 也许是这样的:
echo "Why did you interrupted the process?" && read why && echo $why > log
(我不确定你的意思是为什么)。
3.如何- 由于如果用户按下Ctrl + C
或通过 发送中断,BASH 会收到相同的信号kill
,据我所知,不可能查明中断到底是如何发生的。
4. 当- 这很简单,使用date
命令:
date > log
编辑:如果您的意思是确定“为什么”和“如何”下的信号类型,请参阅这StackOverflow 上的问答。