screen

关于screen的用法,网上有很多文章,这里简单说一下:

1、screen -ls 列出当前系统中运行的session

下面说明,我的系统中有三个session正在运行。

[root@li402-41 ~]# screen -ls

There are screens on:

29486.edm__10000 (Detached)

29910.edm__20000 (Detached)

29562.edm_30000(Detached)

2、结束一个session

有两种方法

一种是,通过screen -r pid 或者 screen -r name先进入该session中,然后exit即可

一种是,通过screen -S edm_10000 -X quit命令,不进入该session中,直接退出

当然也可以直接 kill pid的方式结束一个session,

killall screen 结束所有的session会话

3、结束多个session

如果你的系统里有多个session同时在运行,有没有办法全部退出呢?

当然,你可以一个一个的session退出,只是麻烦了一点。

我们也可以通过组合命令,一次全部退出

screen -ls | grep -i detached | cut -d. -f1 | tr -d [:blank:]| xargs kill

screen -ls | grep Detached | cut -d. -f1 | awk ‘{print $1}’ | xargs kill

如果您的pid都是五位数的话

screen -ls | grep -o "[0-9]{5}" | xargs kill

这两行命令的意思都差不多,通过管道,找到每个session的pid,然后作为 kill的参数,直接杀掉该进程

screen -ls : 列出所有的screen session

grep Detached : 过滤出Detached的session

cut -d. -f1 :用.分割,取第一部分,也就是 pid

awk和tr都是去掉前面的空白符的

xargs :就是把每一行作为 kill 的参数执行

原文地址:https://www.cnblogs.com/whoic/p/12867600.html