screen用法

screen 参数

Attached: 有用户连进去
Detached:没有用户连进去
Dead: 说明该终端不可用

  1. -dmS name Start as daemon: Screen session in detached mode. #开一个screen终端,并离线执行任务,不进到终端,终端的状态为Detached
  2. 跳转到特定的screen窗口
    [root@k8s-master ~]# screen -r 7849
[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.
  1. -S sockname Name this session .sockname instead of ...
    [root@k8s-master ~]# screen -S csren #开启(命名)一个终端,并进去,查看其终端状态为Attached;可重复名字,开启后进程ID不一样
[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 ~]# 

关闭Screen窗口

有两种方法

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

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

当然也可以直接 kill pid的方式结束一个session,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值