小编fir*_*ks2的帖子

终端关闭时bash收到的信号

使用陷阱来捕获这样的信号:

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

这些信号来自哪里?

bash terminal signals

11
推荐指数
2
解决办法
7055
查看次数

SIGHUP来自哪里?(sshd要求孩子创建一个新会话,杀死这个孩子,会话中的所有进程都会死掉)

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!

openssh sshd

5
推荐指数
1
解决办法
1087
查看次数

标签 统计

bash ×1

openssh ×1

signals ×1

sshd ×1

terminal ×1