文章目录
1 长时间任务
实际工作中,经常遇到一些需要很长时间才能完成的任务,例如压缩一个40G的目录,或者复制很大的文件。这些操作耗时很长,操作人员一般需要一直等待,直到它执行完毕。否则,可能会因为电脑锁屏、服务器ssh链接断开而导致任务执行失败。
在linux系统里有一个命令,screen
,可以很好地解决这个问题。可以通过screen,将执行的命令放到screen后台任务里,screen任务作为一个进程在服务器后台执行。设置好screen任务后,可以退出服务器去做其他事情,等时间差不多了,再来查看放在screen的任务。
一般情况下,只要没有人去kill你的screen任务进程,服务器也没有关机或重启操作,screen任务都会平稳运行。
screen的使用实现了长耗时任务的无人值守,解放了操作者的双手,节省了时间,是IT民工必备的技能之一。
下边简单说下screen的用法
2 使用
如下操作中出现的{pid}
表示screen任务的pid {task_name}
表示screen的任务名称
2.1 安装screen
yum -y install screen
2.2 创建一个screen任务
方式一: 创建有名字的screen任务
screen -S {task_name}
方式二: 创建没有名字的screen任务
screen
执行完上述命令后,其实就进入了screen的shell环境 此时执行的操作 都是放在screen里的
2.3 查看screen任务
执行-ls
可以查看到系统中所有的screen任务的pid
screen -ls
如下的10899就是screen任务的pid
[root@localhost ~]# screen -ls
There is a screen on:
10899.task (Attached)
1 Socket in /var/run/screen/S-root.
2.4 将screen任务放到后台
快捷键 ctrl+a+d
另外一种方式:再打开一个终端
screen -d {pid}
或者
screen -d {task_name}
2.5 进入screen任务
screen -r {pid}
或者
screen -r {task_name}
2.6 删除screen任务
使用 -r
进入screen任务之后 输入exit
2.7 其他快捷键
3 使用建议
建议创建有名称的screen任务 方便后期查看 不用执行-ls