SSH远程登录到Linux服务器,执行一个程序,在SSH退出时,该程序也将退出。这是由于SIGHUP信号在SSH退出时被发送到了我们希望保持运行的程序上,结果就是SSH退出后,先前执行的程序也随之退出。
有时候我们希望在SSH退出后,让我们执行的程序继续保持运行,很显然的做法是让想要在SSH退出后继续保持运行的程序忽略SIGHUP信号。
nohup命令可以实现这个功能,nohup命令让程序忽略SIGHUP信号,同时默认把向程序对控制台的标准输入和标准错误内容放于nohup.out文件中。
通过nohup与&的配合,可以实现让程序在后台忽略SIGHUP信号的运行,从而实现退出SSH不会伴随着程序被退出。
nohup <command> [argument...] &
该组合常被用来快捷的在远程服务器上运行一些SSH退出后依旧需要保持执行的程序。
除了nohup其他,也可通过其他方法实现类似效果,比如screen, tmux。
本文介绍如何使用nohup命令及screen、tmux等工具,使程序在SSH断开连接后仍能继续运行,避免因SIGHUP信号导致程序意外终止。
2724

被折叠的 条评论
为什么被折叠?



