在linux平台上,要在后台运行脚本的话,一般是在命令之后加上&即可。
但是今天通过putty在远程服务器上执行php a.php &之后,a.php脚本并没有在后台运行起来。
于是在网上找到了nohup,具体方法为:
nohup php a.php &
这样即使退出了终端,a.php依然在后台运行。
Linux nohup和&的功效
使用&后台运行程序:
结果会输出到终端
使用Ctrl + C发送SIGINT信号,程序免疫
关闭session发送SIGHUP信号,程序关闭
使用nohup运行程序:
结果默认会输出到nohup.out
使用Ctrl + C发送SIGINT信号,程序关闭
关闭session发送SIGHUP信号,程序免疫
平日线上经常使用nohup和&配合来启动程序:
同时免疫SIGINT和SIGHUP信号
同时,还有一个最佳实践:
不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里。