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