保持进程

本文介绍在UNIX环境下使用nohup、disown和tmux三种方法来保持长时间运行的命令不被SSH连接中断,确保任务持续执行直至完成。

原文Keep Long Running UNIX Commands Alive

需求:你有一个程序要运行很长时间,你希望即使自己退出SSH连接,它也不会被杀死,而是运行到它自己结束。

我知道三种方法来保持进程:nohupdisowntmux

最简单的方法: nohup

当你退出终端时,终端会向它的所有子进程发送挂起信号,这会结束掉它们。 而nohup能通知进程忽略挂起信号。

为了保持进程

$ nohup <the command> &

默认情况下nohup会将标准输出和标准错误重定向到当前目录下的nohup.out文件。

这时,即使你退出终端,进程也不会被结束。你可以重新登入并tail nohup.out文件,你会发现它仍在运行。

不好,我忘了用nohup启动:disown

如果你忘了用nohup启动,不必担心,disown会是你的朋友。唯一的缺点是你将不能重定向标准输出。

为了保持你已启动的进程,首先你需要暂停它,然后让它在后台运行起来,最后disown即可:

# press Ctrl+Z to suspend the program
$ bg
$ disown

现在可以放心地退出终端了。

复杂方法:tmux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值