Linux环境下如何让项目后台运行
问题:使用Xshell启动一个项目,Xshell关掉后,项目就停止运行了,这个时候我们希望它能够后台运行,关掉Xshell后,项目依然可以启动。
例如:要项目启动文件名称是:ex.sh
1,#sh ex.sh 这样能启动,但是你用ctrl+C后,项目就结束掉了。
2,#sh ex.sh & 这样可以将项目后台运行,即使你用ctrl+C后,项目依然运行。但是关掉Xshell后,项目就结束掉了。
3,#nohup sh ex.sh & 这个才是我们想要的。即使关掉Xshell,项目依然运行。
nohup 和 & 的区别:
&是后台运行。当你在执行sh setup.sh &的时候, 即使你用ctrl+C, 那么setup.sh照样运行(因为对SIGINT信号免疫)。 但是如果直接关掉Xshell, 那么setup.sh进程同样消失。
nohup的意思是忽略SIGHUP信号, 所以当运行nohup sh setup.sh的时候, 关闭Xshell,那么setup.sh进程还是存在的(对SIGHUP信号免疫)。 如果你直接在Xshell中用Ctrl+C,那么setup.sh进程也是会消失(因为对SIGINT信号不免疫)
所以, 要让进程真正不受shell中Ctrl+C和shell关闭的影响,那就用nohup sh setup.sh &