我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?
(1)在使用nohup + &命令让任务在后台执行。
nohup sh test.sh > a.log &
模拟:
发现执行退出当前会话,命令依旧后台执行。
(2)当我们已经运行一个命令,但是又不想等待它完成在退出登录,可以使用以下命令
ctrl+Z -> bg %id -> disown -h %id
模拟:
依次执行命令后发现,退出当前会话,进程依然在后台执行。
小技巧:当初使用scp上传大文件时,由于需要输入交互密码,没法使用nohup命令,但是可以在输入密码之后执行第二种方法,这样就不怕传输中断了呢!亲测可用哦!
更多详细介绍请查看:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/