Attached: 有用户连进去
Detached:没有用户连进去
Dead: 说明该终端不可用
[root@k8s-master ~]# screen -dmS test ./screen.sh #开启一个名为test的终端,并执行脚本,该终端的状态为Detached
[root@k8s-master ~]# screen -S test -d -m ./screen.sh #和上面命令一样
[root@k8s-master ~]# screen -ls
There is a screen on:
38835.test (Detached)
1 Socket in /var/run/screen/S-root.
当screen为Detached的时候,执行screen -d -r 38835会变成Attached,并且进入到38835的终端
[root@k8s-master ~]# screen -ls
There is a screen on:
38835.test (Attached)
1 Socket in /var/run/screen/S-root.
[root@k8s-master ~]# kill -9 38835 ##当为detached或者attached的时候,执行kill -9 pid就会将其变成Dead状态
[root@k8s-master ~]# screen -ls
There is a screen on:
38835.test (Dead ???)
Remove dead screens with 'screen -wipe'.
1 Socket in /var/run/screen/S-root.
#这种情况,不能再附接,只能通过screen -wipe清理
[root@k8s-master ~]#
[root@k8s-master ~]# screen -ls
There are screens on:
42572.test (Detached)
38835.test (Dead ???)
Remove dead screens with 'screen -wipe'.
2 Sockets in /var/run/screen/S-root.
[root@k8s-master ~]# screen -wipe #这个命令只能移除Dead,无论多少个Dead,只需执行一个screen -wipe,其他状态还是保留
There are screens on:
42572.test (Detached)
38835.test (Removed)
1 socket wiped out.
1 Socket in /var/run/screen/S-root.
[root@k8s-master ~]# screen -ls
There is a screen on:
42572.test (Detached)
1 Socket in /var/run/screen/S-root.
[root@k8s-master ~]# screen -ls
There is a screen on:
42572.test (Detached)
1 Socket in /var/run/screen/S-root.
[root@k8s-master ~]# screen -X -S 42572 quit #退出终端(Detached|Attached)
[root@k8s-master ~]# screen -ls
No Sockets found in /var/run/screen/S-root.
[root@k8s-master ~]# screen -X -S test quit #当名字重复的时候,不能用名字当参数,执行退出,会报错,要用PID
There are several suitable screens on:
51996.test (Detached)
51974.test (Detached)
Use -S to specify a session.
[root@k8s-master ~]#
[root@k8s-master ~]# screen -S test ##开启一个名为test的终端,并且进入中断
[root@k8s-master ~]# screen -ls
There are screens on:
70482.test (Attached)
69775.test (Detached)
2 Sockets in /var/run/screen/S-root.
[root@k8s-master ~]# screen -d 70482 ##将Attached变成Detached
[root@k8s-master ~]#
[remote detached from 70482.test]
[root@k8s-master ~]# screen -dmS test ./screen.sh
[root@k8s-master ~]# screen -ls
There is a screen on:
93882.test (Detached)
1 Socket in /var/run/screen/S-root.
[root@k8s-master ~]# screen -r 93882 ##将detached变为Attached,并且进终端
删除终端(Attached|Detached|Dead)
[root@k8s-master ~]# screen -S expandcee -d -m ./screen2.sh
[root@k8s-master ~]# screen -S expandcee -d -m ./screen2.sh
[root@k8s-master ~]# screen -S expandcee -d -m ./screen2.sh
[root@k8s-master ~]# screen -ls
There are screens on:
15955.expandcee (Detached)
15935.expandcee (Detached)
15919.expandcee (Detached)
3 Sockets in /var/run/screen/S-root.
[root@k8s-master ~]# kill -9 15919
[root@k8s-master ~]# screen -ls
There are screens on:
15955.expandcee (Detached)
15935.expandcee (Detached)
15919.expandcee (Dead ???)
Remove dead screens with 'screen -wipe'.
3 Sockets in /var/run/screen/S-root.
[root@k8s-master ~]# bash screen_delete.sh
There is a screen on:
15919.expandcee (Removed)
1 socket wiped out.
No Sockets found in /var/run/screen/S-root.
[root@k8s-master ~]# screen -ls
No Sockets found in /var/run/screen/S-root.
####screen_delete.sh###
[root@k8s-master ~]# cat screen_delete.sh
#! /bin/sh
PID=`screen -ls | awk -F "." '/Attached|Detached/{print $1}' | tr -d '\t'`
if [ -n "$PID" ]
then
for i in $PID
do
screen -X -S $i quit
done
fi
PID_D=`screen -ls | awk -F "." '/Dead/{print $1}' | tr -d '\t'`
if [ -n "$PID_D" ]
then
screen -wipe
exit 1
fi
共享服务器:
当A和B同时登录一台服务器时,A要操作给B看
A先在服务器执行screen -S test 就会进入一个终端,在里面操作自己的东西;B要想实时同步看A操作的内容,只需输入screen -x test.
这样A无论操作什么,B看到的东西都是和A一样的。
[root@k8s-master ~]# screen -S 34121 -X ping www.baidu.com ##在sany这个终端上去执行命令
[root@k8s-master ~]# screen -ls
There is a screen on:
34121.sany (Attached)
1 Socket in /var/run/screen/S-root.
[root@k8s-master ~]#
[root@k8s-master ~]# screen -ls
There are screens on:
37020.ren (Detached)
34121.sany (Attached)
2 Sockets in /var/run/screen/S-root.
[root@k8s-master ~]# screen -S ren -X ping www.baidu.com #必须在已有的终端上去执行,当终端不存在时会报错
[root@k8s-master ~]# screen -S ren1 -X ping www.baidu.com
No screen session found.
[root@k8s-master ~]#
-x 恢复之前的作业
-X 执行命令
[root@k8s-master ~]# screen -dmS test ./screen.sh
[root@k8s-master ~]# screen -ls
There is a screen on:
42047.test (Detached)
1 Socket in /var/run/screen/S-root.
[root@k8s-master ~]# screen -x 42047 -X quit ##也可以终止终端
[root@k8s-master ~]# screen -ls
No Sockets found in /var/run/screen/S-root.
[root@k8s-master ~]#