如何在Linux上杀死一个分离的屏幕会话
介绍
单独的屏幕会话是在Linux机器上执行后台进程的一个很好的方法。然而,有时可能需要杀死一个不再需要的独立屏幕会话。在这篇文章中,我们将告诉你如何使用命令行在Linux上删除一个单独的屏幕会话。
在使用GNU屏幕工具时,我们有时会出现需要清理的独立会话。在这个快速教程中,我们将看看删除一个断开连接的屏幕会话的一些选项。
会议列表
在我们开始讨论如何结束现有的会话之前,让我们先看一下现有会话的列表。首先,让我们设置几个屏幕会话的样本。在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)
如果屏幕会话有一个以上的窗口,我们就必须在屏幕会话结束前在每个窗口中输入退出(或CTRL+a k)。一个更简单的选择是退出命令–
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)
现在我们可以使用Argument -X screen命令来发送命令到一个执行 “screen “会话。他将允许我们指定命令所要接收的会话。因此,如果要向my_session_4发送一个退出命令,我们可以使用-X屏幕命令。
$ screen -S my_session_4 -X quit
屏幕上的列表显示了我们当前的会议 –
$ screen -list
There is a screen on:
19671.my_session_5 (Detached)
最后,我们总是可以通过操作系统命令终止一个屏幕会话。名称前面的数字是会话的PID,可以用来通过删除命令终止会话。
$ kill -9 19671
这将结束1967年的会议。
结论
在这篇文章中,我们展示了在Linux上结束一个独立屏幕会话的各种方法。我们展示了如何检查独立的显示会话,如何使用 “screen -X -S “命令来删除一个独立的显示会话,以及如何使用 “exit “命令通过连接它来删除一个独立的显示会话。我们还介绍了一种使用 “kill -9 PID “命令在不连接单独的视图会话的情况下结束它的方法。请记住,删除一个视频会话也将删除其中运行的所有进程。因此,使用这个命令时要小心。