让前台程序转为后台运行

我们在登录服务器,执行一个很耗时的任务时,通常我们会使用 nohup + & 的方式执行,如果我们在启动时,忘记加上这 nohup 该如何补救呢?

  1. 首先使用 control + z 让当前进程挂起(Suspend)。
  2. 然后我们使用 jobs 查看它的作业号。
  3. 再用 bg %jobspec 来将它放入后台并继续运行。
  4. 最后使用 disown -h %jobspec 来使这个作业忽略 HUP 信号。

这个方法可以用在 scp 的命令中,在没有设置 ssh 无密码登录的情况下,我们不能使用 nohup 来执行 scp 命令,所以只能在开始大文件拷贝后,通过上述流程来让这个作业放置在后台执行。