执行 Screen 命令,可以避免远程连接服务器运行系统备份、scp传输、编译安装等长时间才能完成的任务时,因网络突然掉线或者关掉窗口导致任务中断。
1. 安装Screen
1.1 安装状态
which screen
执行如上命令,如果没有任何结果返回,说明你的 linux 系统并没有安装 Screen
1.2 开始安装
#CentOS系统 yum install screen #Debian和Ubuntu系统 apt-get install screen
根据自己系统种类,选择其中一种命令执行,为服务器安装 Screen
2. 使用方法
2.1 运行Screen
假设我们要为服务器执行一个需长时间执行的任务,通过 Xshell 等软件连接服务器,可以执行如下命令,开启一个名为 cccitu
的新窗口,然后再执行编译任务或其它需长时间后台运行的任务。
screen -S cccitu
也可以通过如下命令执行后台运行+执行命令的操作
screen -dmS 名称 执行任务的命令 screen -dmS cos start_migrate.sh #后台执行一个名为cos的任务
2.2 语法参数
-A # 将所有的视窗都调整为目前终端机的大小。 -d <作业名称> # 将指定的screen作业离线。 -h <行数> # 指定视窗的缓冲区行数。 -m # 即使目前已在作业中的screen作业,仍强制建立新的screen作业。 -r <作业名称> # 恢复离线的screen作业。 -R # 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 -s # 指定建立新视窗时,所要执行的shell。 -S <作业名称> # 指定screen作业的名称。 -v # 显示版本信息。 -x # 恢复之前离线的screen作业。 -ls或--list # 显示目前所有的screen作业。 -wipe # 检查目前所有的screen作业,并删除已经无法使用的screen作业。
2.3 列出所有任务窗口
screen -ls
2.4 恢复连接
如果 cccitu 任务还在执行,但是网络掉线了或自己以外关闭了Xshell 窗口,可以重新连接服务器,执行如下命令重新打开刚才的进程
screen -r cccitu
如果出现screen session 的状态为 Attached 但是却连不上的情况,可执行如下命令:
screen -D -r name #name 为 screen ID 可用命令 screen -ls 查看
2.5 删除失效
检查目前所有的 screen 作业,并删除已经无法使用的 screen 作业。
screen -wipe
2.6 中断任务并删除窗口
screen -S name -X quit #name 为 screen ID 可用命令 screen -ls 查看
3. 高级使用
以上是一个基础用法,更为详细的方法可以参考《Screen:后台不中断执行命令详解》
暂无评论
要发表评论,您必须先 登录