您的位置:首页 > 其它

保持进程

2016-05-17 23:06 225 查看
原文Keep Long Running UNIX Commands Alive

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

我知道三种方法来保持进程:
nohup
disown
tmux


最简单的方法: 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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: