如何在 Linux 上终止分离的屏幕会话
简介
单独的屏幕会话是执行 Linux 机器上的后台进程的绝佳方法。但是,有时可能需要终止不再需要的单独屏幕会话。在本文中,我们将向您展示如何使用命令行在 Linux 上删除单独的屏幕会话。
当使用GNU screen工具时,我们有时会最终得到需要清理的单独会话。在本快速教程中,我们将介绍一些删除断开连接的屏幕会话的选项。
会话列表
在我们开始讨论如何结束现有会话之前,让我们先浏览一下现有会话的列表。首先,让我们设置几个示例屏幕会话。在bash shell 中,我们输入 -
$ screen -dmS my_session_1 $ screen -dmS my_session_2
这将创建两个名为my_session_1和my_session_2的会话。请注意,我们没有连接到任何一个(感谢-d选项)。现在,让我们看看我们创建的会话 -
$ screen -list
我们的两个会话显示出来 -
There are screens on: 84581.my_session_1 (Detached) 76340.my_session_2 (Detached)
附加和终止屏幕会话
删除屏幕会话的一种方法是附加它,然后删除它。因此,让我们附加到上面创建的第一个会话 -
$ exit
会话将结束,我们应该看到 -
[screen is terminating]
现在我们只剩下一个会话了 -
$ screen -list There is a screen on: 76340.my_session_2 (Detached)
如果屏幕会话有多个窗口,则在屏幕会话结束之前,我们必须在每个窗口中键入 exit(或 CTRL+a k)。一个更简单的替代方案是 quit 命令 -
CTRL+a \
(注意 - 按键时需要按住CTRL+a。)这会要求我们确认 -
Really quit and kill all your windows [y/n]
我们选择关闭所有会话窗口以结束屏幕会话。
上面的附加场景很简单,因为我们在同一个窗口中创建了屏幕会话。现在,如果还有其他终端或用户附加到我们想要删除的会话,我们需要不同的命令来附加它。在当前的终端窗口中,创建一个新会话 -
$ screen -S my_session_3
-S 将创建会话并将其附加。现在,让我们打开第二个终端窗口并列出我们的屏幕会话 -
$ screen -list There is a screen on: 19643.my_session_3 (Attached)
请注意,它现在是“附加”,因为我们在第一个终端中连接。在我们的第二个终端中,我们将强制会话注销第一个终端窗口并连接到第二个终端。在第二个终端中,键入 -
$ screen -D -R my_session_3
无需附加即可终止屏幕会话
作为附加到会话以结束它的替代方法,让我们看看一些无需附加即可结束屏幕会话的方法。
首先,我们相信要终止几个会话 -
$ screen -dmS my_session_4 $ screen -dmS my_session_5
我们的两个会话现已创建 -
$ screen -list There are screens on: 19665.my_session_4 (Detached) 19671.my_session_5 (Detached)
现在,我们可以使用参数-X screen 命令向执行“screen”会话发送命令。他将允许我们指定命令将接收的会话。因此,要向my_session_4发送退出命令,我们将使用 -
$ screen -S my_session_4 -X quit
screen -list显示我们当前的会话 -
$ screen -list There is a screen on: 19671.my_session_5 (Detached)
最后,我们始终可以通过操作系统命令终止屏幕会话。名称之前的数字是会话的PID,可用于通过 delete 命令终止会话。
$ kill -9 19671
这将结束会话19671
结论
在本文中,我们展示了在 Linux 上结束独立屏幕会话的各种方法。我们展示了如何检查单独的显示会话,如何使用“screen -X -S”命令删除单独的显示会话,以及如何使用“exit”命令通过链接它删除单独的显示会话。我们还介绍了一种在不连接的情况下结束单独视图会话的方法,使用“kill -9 PID”命令。请记住,删除视频会话也将删除在其中运行的所有进程。因此,使用此命令时请小心。