問題場景
通過xshell遠程登錄服務器,然後啓動幾個後臺服務,驗證後服務功能都正常,ok!
然後過了一段時間發現服務器有問題,排查之後發現,有一個服務莫名的掛了,通過日誌定位到接收到SIGHUP信號,然後掛了!WTF???
問題分析
確認後臺運行命令:
nohup ./myserver > myout.log 2>&1 &
沒有問題。
nohup啓動服務後,關閉終端,重新登錄
netstat -ntlp
服務沒了。。。。
解決方案
-
臨時解決方案:
nohup執行命令後exit
安全退出。OK,沒問題了。
-
根本解決方案:在程序中捕捉SIGHUP信號
總結
此坑雖小,可不要貪杯啊!分分鐘造成生產事故,頂不住!
參考鏈接:
https://blog.csdn.net/z_ryan/article/details/80952498