我在 Linux 中创建了一个屏幕“myscreen”,它突然停止响应。我关闭了终端并尝试重新打开它。 “screen -ls”显示屏幕已附加。我尝试了以下命令,但没有任何反应。
screen -r myscreen
screen -D myscreen
screen -D -RR myscreen
screen -X -S myscreen quit
非常感谢任何重新连接到屏幕或关闭屏幕的帮助。
screen -X -S SCREENID kill
或者,您可以使用以下命令
screen -S SCREENNAME -p 0 -X quit
您可以通过执行
screen -ls
查看屏幕会话列表
从终端创建屏幕:
screen -S <screen_name>
查看屏幕列表:
<screen -ls> or <screen -list>
转到特定屏幕:
<screen -x screen_name>
<screen -r screen_name>
内屏
终止屏幕:
give ctrl+d screen will get terminated
分离屏幕:
give <ctrl+ad>or <screen -d >screen will get detached
重新连接屏幕:
screen -x <screen_name> or screen -r <screen_name>
要从终端终止屏幕:
<screen -X -S screen_name quit>
或
<screen -X -S screen_name kill>
您可以使用 screen_name 或 process_id 来执行命令。
这对我来说非常有效。通过以下方式获取屏幕 ID:
screen -r
或
screen -ls
然后关闭屏幕:
kill -9 <screenID>
现在它变成了死屏,
然后用以下方法将其擦掉:screen -wipe
要杀死分离的屏幕,请从终端使用此命令:
screen -X -S "SCEEN_NAME" quit
如果您已连接,则使用(从终端和屏幕内部):
exit
假设您的屏幕 ID 有一个模式。然后您可以使用以下代码立即终止所有连接的屏幕。
result=$(screen -ls | grep 'pattern_of_screen_id' -o)
for i in $result;
do
`screen -X -S $i quit`;
done
我通常不会命名我的屏幕实例,因此这可能没有用,但是您是否尝试过不使用“myscreen”部分的
screen -r
?通常对我来说,screen -r
会显示每个屏幕的PID,然后我可以用screen -d -r <PID>
重新连接
您可以找到附加运行屏幕的进程ID。
我发现它与你可以通过命令获取的会话ID相同:
screen -ls
kill [sessionId]
或sudo kill [sessionId]
所有
screen
命令都没有为我杀死或重新连接屏幕。任何 screen
命令都会挂起。我找到了另一种方法。
每个运行屏幕都有一个与其关联的文件:
/var/run/screen/S-{user_name}
运行
screen -list
时,该文件夹中的文件将与屏幕名称相匹配。如果删除该文件,它会终止关联的运行屏幕(分离或附加)。
您只需按照此程序即可
如果屏幕处于分离状态
screen -r "screenName"
exit
这将杀死/终止您想要杀死的屏幕
如果屏幕处于附着状态
screen -d -r "screenName"
exit
查找结果:点击这里
Screen 是一个全屏窗口管理器,它在多个进程(通常是交互式 shell)之间复用物理终端。每个虚拟终端都有一个回滚历史缓冲区,以及允许用户在窗口之间移动文本区域的复制粘贴机制。