10.35 screen工具

牧云@^-^@ 提交于 2019-12-05 19:27:02

screen工具

  • 为了不让一个任务意外中断
  • nohup command &
  • screen是一个虚拟终端
  • yum install -y screen
  • screen直接回车就进入了虚拟终端
  • ctral a组合键再按d退出虚拟终端,但不是结束
  • screen -ls 查看虚拟终端列表
  • screen -r id 进入指定的终端
  • screen -S aming
  • screen -r aming

screen

  • screen,虚拟的一个屏幕,也可以理解为一个虚拟的终端

  • 需求,执行一个脚本,需要一天一夜,而且脚本会输出一些东西出来,这就意味着这个脚本不能中途断开,保证脚本不中断,有两种方法:

    • 方法一:把这个任务丢到后台去,然后加一个日志的输出
      • 命令nohup command &——>nohup 加执行命令 加日志 再加一个&符号
      • 这时即使你的终端断开,依旧会在后台执行——>但虽然解决了任务中断的问题,但是没有办法实时查看输出的内容
    • 方法二:screen工具,可以把要执行的命令,放到这个终端里,然后在退出pts/0之前,可以把screen丢到后台去,随时用, 随时查看
  • 安装screen包——>yum install -y screen

    • 在安装完成后,直接敲screen命令,回车,会进入到screen,进入到一个窗口,这个窗口就是一个虚拟终端
    • 在虚拟终端,执行vmstat 1命令,然后 ctrl+a键 同时按,随后再按 d键 ,就把screen丢到后台了
    • 执行screen ls 命令,列出当前所有的session
    • 执行screen -r 再加查看到的id 命令,再回到虚拟终端
    • 这时若不需要screen了,直接杀死,按 exit 即可
    • 再次 screen -ls 查看,会发现没有screen
[root@hf-01 ~]# screen
在虚拟终端下执行了vmstat 1,按 ctrl+a键 同时按,随后再按 d键 ,就把screen丢到后台了

[detached from 2841.pts-0.hf-01]
[root@hf-01 ~]# screen -ls        //列出当前所有的session
There is a screen on:
	2841.pts-0.hf-01	(Detached)
1 Socket in /var/run/screen/S-root.

[root@hf-01 ~]# screen -r 2841    //重新回到虚拟终端——>若不需要screen了,直接杀死,按 exit 即可
[screen is terminating]
[root@hf-01 ~]# screen -ls        //再次查看,会发现没有screen
No Sockets found in /var/run/screen/S-root.

[root@hf-01 ~]# 

screen命令,多个虚拟终端同时运行

  • screen可以执行多个虚拟终端,同时运行
    • 若想进入到其中一个,指定id即可
[root@hf-01 ~]# screen
[detached from 2880.pts-0.hf-01]
[root@hf-01 ~]# screen
[detached from 2903.pts-0.hf-01]
[root@hf-01 ~]# screen
[detached from 2926.pts-0.hf-01]
[root@hf-01 ~]# screen -ls
There are screens on:
	2926.pts-0.hf-01	(Detached)
	2903.pts-0.hf-01	(Detached)
	2880.pts-0.hf-01	(Detached)
3 Sockets in /var/run/screen/S-root.

[root@hf-01 ~]# 

  • 但是时间久了,有可能会忘记某一个screen是运行的是什么(因为名字是相同的)
    • 我们可以给screen作业的名称
  • screen -S "test_screen" //指定screen作业的名称
    • screen -r 后可以加id号,可以是screen作业的名称
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!