我们经常会碰到一种情况,用ssh远程登录到linux服务器后,启动一个脚本跑任务,如果这个任务耗时比较久,就得等着,如果此时由于网络原因,ssh连接断了,再重新登录服务器,原来的任务就没了,得重新运行一次。有没有办法让任务切到后台,ssh退出后还能继续运行呢? 当然有~,而且很简单:
1. 在ssh shell中运行脚本,比如我运行一个批量下载脚本:
python download-app-annie.py
2. 按下ctrl-z中断脚本运行,此时系统提示:
^Z
[1]+ Stopped python download-app-annie.py
意思是编号为1的任务挂起了,[1]就是任务的编号,里面的数字也可能是2,3,4..
3. 输入命令:bg 1
这个命令将1号任务切换到后台执行
4. 输入命令:disown -h %1
这个命令的意思是将1号任务从当前shell的任务列表中移除,并且忽略HUP信号,这样,即使当前Shell结束了,这个任务也不会被结束,而是继续留在后台执行。
我在阿里云服务器上挂了8个下载任务,一个晚上就从国外的一个app下载站拉了将近1500个apk,总共有47个G。
本文介绍了一种在SSH连接下使脚本在后台持续运行的方法,即使SSH连接中断也能确保任务继续执行。通过简单的步骤,如使用ctrl-z暂停脚本、bg命令将任务转到后台、disown命令使其脱离当前shell,可以实现这一目标。
5125





