Linux命令:Screen 让长时间作业任务后台运行不中断

编辑于:2023年03月25日
Linux命令:Screen 让长时间作业任务后台运行不中断

执行 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:后台不中断执行命令详解

相关推荐

Debian/Ubuntu开启TCP BBR加速

Debian/Ubuntu开启TCP BBR加速

Debian9 系统默认的是编译了 TCP BBR 的 4.9版内核,所以采用了Debian9系统的服务器可以不用进行繁琐的安装,仅通过几条简单的参数命令就能开启BBR加速。

CentOS 如何开启 BBR 加速?

CentOS 如何开启 BBR 加速?

Google 开源的 BBR 拥塞控制算法,可以改善网络传输速度,尤其是海外服务器和中国之间的网络传输。BBR 从Linux 4.9开始内置,因此如果系统的内核版本高于 4.9 就可以很方便的启用,如果低于4.9 就需要先升级内核 ...

Linux命令:sudo -i 切换到 root 用户权限

Linux命令:sudo -i 切换到 root 用户权限

从谷歌云等云服务商的后台连接服务器,通常不是 root 用户权限,导致有些命令无法执行。 切换root用户 为此,我们可以先通过 sudo -i 切换到 root 用户,然后再执行其它命令。 sudo -i 修改root密码 此外,切换 ...

暂无评论