我们在登录服务器,执行一个很耗时的任务时,通常我们会使用 nohup + & 的方式执行,如果我们在启动时,忘记加上这 nohup 该如何补救呢?
- 首先使用
control + z让当前进程挂起(Suspend)。 - 然后我们使用
jobs查看它的作业号。 - 再用
bg %jobspec来将它放入后台并继续运行。 - 最后使用
disown -h %jobspec来使这个作业忽略 HUP 信号。
这个方法可以用在 scp 的命令中,在没有设置 ssh 无密码登录的情况下,我们不能使用 nohup 来执行 scp 命令,所以只能在开始大文件拷贝后,通过上述流程来让这个作业放置在后台执行。