我在 linux 中创建了一个屏幕“myscreen”,但它突然停止响应。我关闭了终端并试图重新打开它。“screen -ls”显示屏幕已附加。我尝试了以下命令,但没有任何响应。
screen -r myscreen
screen -D myscreen
screen -D -RR myscreen
screen -X -S myscreen quit
非常感谢重新连接到屏幕或杀死屏幕的任何帮助。
我在 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
假设您的屏幕 id 有一个模式。然后您可以使用以下代码一次杀死所有附加的屏幕。
result=$(screen -ls | grep 'pattern_of_screen_id' -o)
for i in $result;
do
`screen -X -S $i quit`;
done
要杀死分离的屏幕,请从终端使用:
screen -X -S "SCEEN_NAME" quit
如果您已连接,请使用(从终端和屏幕内部):
exit
我通常不命名我的屏幕实例,所以这可能没有用,但是您是否尝试screen -r
过不使用“myscreen”部分?通常对我来说,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 是一个全屏窗口管理器,它在多个进程之间多路复用一个物理终端,通常是交互式 shell。每个虚拟终端都有一个回滚历史缓冲区和一个允许用户在窗口之间移动文本区域的复制和粘贴机制。