如何将screen会话设置为'Dead'状态?
让screen会话进入'Dead'状态的方法
首先明确:screen的'Dead'状态意味着会话对应的主进程已经终止,但screen仍保留该会话的记录(不会自动删除)。以下是几种实现方式:
直接杀死会话的主进程
- 先列出所有screen会话,找到目标会话的PID(会话名称前的数字):
示例输出可能类似:screen -list12345.my_session (Attached) - 强制终止该PID对应的进程:
kill -9 12345 - 再次执行
screen -list,就能看到该会话显示为Dead状态。
- 先列出所有screen会话,找到目标会话的PID(会话名称前的数字):
在会话内部终止主进程
- 先进入目标会话:
screen -r my_session - 在会话内执行命令终止当前主进程(比如当前是bash shell,
$$代表当前shell的PID):kill -9 $$ - 此时会退出到原shell,执行
screen -list即可看到会话变为Dead。
- 先进入目标会话:
通过screen内置命令远程终止会话主进程
如果无法直接进入会话,可以用screen -X发送命令到目标会话:screen -X -S my_session stuff "kill -9 $$\n"这条命令会在目标会话中输入
kill -9 $$并执行,主进程终止后会话就会进入Dead状态。
注意:Dead状态的会话可以用screen -wipe命令清理掉,如果你之后不需要保留这些记录的话。
内容的提问来源于stack exchange,提问作者sun
相关产品推荐
相关产品推荐

