linux任务后台执行方法

我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?

(1)在使用nohup + &命令让任务在后台执行。

nohup sh test.sh > a.log &

模拟:

linux任务后台执行方法

发现执行退出当前会话,命令依旧后台执行。

(2)当我们已经运行一个命令,但是又不想等待它完成在退出登录,可以使用以下命令

    ctrl+Z -> bg %id -> disown -h %id

模拟:

linux任务后台执行方法

依次执行命令后发现,退出当前会话,进程依然在后台执行。

小技巧:当初使用scp上传大文件时,由于需要输入交互密码,没法使用nohup命令,但是可以在输入密码之后执行第二种方法,这样就不怕传输中断了呢!亲测可用哦!

更多详细介绍请查看:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

 

转载于:https://my.oschina.net/cdsc/blog/699324