关于nginx信号控制的“故障”案例
? 關(guān)于nginx信號(hào)控制的“故障”案例
? ?最近幾天發(fā)現(xiàn)nginx的日志老切割不成功,遂來查找問題。
? ? 最開始以為是logrotate的腳本問題,遂手動(dòng)切割,運(yùn)行以下的命令
? ? 發(fā)現(xiàn)運(yùn)行這個(gè)是沒有問題的,終于,在service nginx restart后,發(fā)現(xiàn)了問題
? ? 問題是在用service nginx restart后,nginx.pid文件才會(huì)自動(dòng)消失,于是,仔細(xì)檢查腳本,發(fā)現(xiàn)一些端倪啊,一個(gè)字眼出現(xiàn)了
-QUIT從容關(guān)閉,也就是說這個(gè)進(jìn)程是慢慢關(guān)閉的,不是立即關(guān)閉的,于是驗(yàn)證。如圖
查看進(jìn)程如下
可以看到,nginx正在shutdown之中,但沒有一下子全部關(guān)閉了。
隨著時(shí)間的推移,nginx老的進(jìn)程在繼續(xù)關(guān)閉中……
到最后,nginx之前的老進(jìn)程全部關(guān)閉……
這時(shí),nginx.pid文件沒有了
到此,nginx.pid文件神奇消失的問題終于被找出來了。
? 繼續(xù)分析-----日志分割,依靠的是nginx.pid獲取nginx的進(jìn)程號(hào),分割成功后,出現(xiàn)的情況是nginx依然昨天的日志,不寫分割后的日志。
? ?那么現(xiàn)在需要對(duì)這個(gè)腳本進(jìn)行修改,把stop函數(shù)中的-QUIT改為-TERM 立即關(guān)閉。(話說我這個(gè)腳本是來自官網(wǎng)改造的,看來官網(wǎng)也不是100%的準(zhǔn)確哦,做運(yùn)維要細(xì)心啊)
? ?官方腳本地址http://wiki.nginx.org/RedHatNginxInitScript
? 再次運(yùn)用此腳本重啟
? 問題不再重現(xiàn),已經(jīng)解決了。
總結(jié),一個(gè)小小的參數(shù),可能會(huì)引發(fā)無限大的問題,所以,學(xué)知識(shí)要細(xì)心啊!
=============================================================
附錄一:nginx的信號(hào)控制
附錄二:nginx的啟動(dòng)腳本如下
附錄三:日志切割腳本如下
?
總結(jié)
以上是生活随笔為你收集整理的关于nginx信号控制的“故障”案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript笔记:推荐使用“百度
- 下一篇: ios开发图形绘制