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作业的名称
来源:oschina
链接:https://my.oschina.net/u/3707314/blog/1585567