使用陷阱来捕获这样的信号:
i=-1;while((++i<33));
do
trap "echo $i >> log.txt" $i;
done
Run Code Online (Sandbox Code Playgroud)
并用力关闭终端.
然后log.txt中的内容(在redhat linux下):
1
18
1
17
0
这些信号来自哪里?
sshd分叉子进程来创建新会话.这是pstree的输出(部分):
sshd(1230) -- sshd(1234) -- bash
(...)
|- sshd(1235) -- bash -- a.out -- a.out
Run Code Online (Sandbox Code Playgroud)
运行"kill -9 1235"后,a.out死掉(捕获的信号为SIGHUP)
为什么?
TKS!