Linux后台执行Shell
2025-01-09 09:12:45
平常我们会遇到一些需求,比如执行某个shell
命令会执行很久,但是终端可能会意外关闭,我们的任务就会半途而废。
比如scp
传输大文件、wget
下载大文件等等,这个时候我们就需要将任务在后台执行,本文将提供几种方案。
1. jobs、bg、disown -h %1
1.1 正常执行命令
1.2 ctrl+z 暂停任务
输入 jobs
查看任务
1
代表任务号
1.3 bg 后台执行
1 | 将1号任务放到前台 |
此时jobs
查看任务,运行中。此时如果关闭终端,会接收到SIGHUP
信号,任务会被终止。
1.4 disown -h %1 移除作业、防止终止
此时任务再受当前 shell 管理,也就不受 SIGHUP
信号影响。
终止当前会话测试,此时任务还在执行,但是父进程号为1