通过 bash 脚本关闭屏幕

发布于 2024-10-25 18:51:39 字数 151 浏览 3 评论 0原文

我正在尝试使用脚本关闭分离的screen(1)

我怎样才能做到呢?我正在使用 screen -dmS name stuff_to_execute 启动屏幕,但再次运行时它会创建一个新屏幕,我想确保旧屏幕退出。我尝试搜索如何执行此操作,但一无所获。

I am trying to close a detached screen(1) using a script.

How could I do it? I am starting the screen using screen -dmS name stuff_to_execute but it creates a new one when ran again, I want to ensure the old screen quits. I tried searching how to do this but found nothing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

隔岸观火 2024-11-01 18:51:39

screen(1) 联机帮助页:

-d -m 以“分离”模式启动屏幕。这会创建一个新会话,但不会附加到它。这对于系统启动脚本很有用。

因此,我认为 -dmS 永远不会关闭正在运行的 screen(1)

您想要杀死指定的screen(1)实例吗?或者你只是想强迫它分离?

如果你想终止:screen -S name -X quit

如果你想分离:screen -dS name

From the screen(1) manpage:

-d -m Start screen in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts.

So I don't think -dmS will ever close a running screen(1).

Do you want to kill the specified screen(1) instance? Or do you simply wish to force it to be detached?

If you want to kill: screen -S name -X quit

If you want to detach: screen -dS name

甜宝宝 2024-11-01 18:51:39

这就是我用来关闭所有屏幕的方法:

screen -ls | grep Detached | awk '{print $1}' | cut -f1 -d'.' | while read in; do screen -X -S $in quit; done 

它会查找屏幕 id 并通过 id 退出所有屏幕。

This is what I use to close all screens:

screen -ls | grep Detached | awk '{print $1}' | cut -f1 -d'.' | while read in; do screen -X -S $in quit; done 

It greps for the screen id and quits them all by id.

二货你真萌 2024-11-01 18:51:39

有时,可以通过向其发送中止键序列来杀死保持打开屏幕的顽固脚本:

screen -X -S "script0$scriptID" stuff "^C"

Sometimes a stubborn script holding open a screen can be killed by sending it an abort key sequence:

screen -X -S "script0$scriptID" stuff "^C"
£烟消云散 2024-11-01 18:51:39
:~$ screen -list

屏幕上有:
23308.rsamikan-3(2015 年 7 月 20 日星期一 04:42:05 IST)(已分离)
23014.rsamikan-2(2015 年 7 月 20 日星期一 04:41:53 IST)(已分离)
22730.rsamikan-1(2015 年 7 月 20 日星期一 04:41:44 IST)(已分离)
16037.rsamikan-remote(2015 年 7 月 20 日星期一 02:51:37 IST)(附件)
/var/run/screen/S-rsamikan 中的 4 个套接字。

我仅使用以下脚本杀死并擦除分离的屏幕。

:~$ **screen -list | grep Detached | awk '{print $1}' | while read in; do screen -X -S $in quit; done**

:~$ screen -list

有一个屏幕:

16037.rsamikan-remote(2015 年 7 月 20 日星期一 02:51:37 IST)(已附)
/var/run/screen/S-rsamikan 中的 1 个套接字。

:~$ screen -list

There are screens on:
23308.rsamikan-3 (Monday 20 July 2015 04:42:05 IST) (Detached)
23014.rsamikan-2 (Monday 20 July 2015 04:41:53 IST) (Detached)
22730.rsamikan-1 (Monday 20 July 2015 04:41:44 IST) (Detached)
16037.rsamikan-remote (Monday 20 July 2015 02:51:37 IST) (Attached)
4 Sockets in /var/run/screen/S-rsamikan.

I have kill and wipe the detached screen only with the following script.

:~$ **screen -list | grep Detached | awk '{print $1}' | while read in; do screen -X -S $in quit; done**

:~$ screen -list

There is a screen on:

16037.rsamikan-remote (Monday 20 July 2015 02:51:37 IST) (Attached)
1 Socket in /var/run/screen/S-rsamikan.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文