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