分享一份nginx重啟指令碼
nginx是超級穩定的伺服器,一般不會因為超載問題而需要重啟,重啟的目的一般都是修改配置檔案後需要載入一下。
最開始的時候,我是用最直接的重啟方式
[@more@]killall -9 nginx;/data/nginx/sbin/nginx最開始的時候,我是用最直接的重啟方式
如果機器比較慢,kill程式時一瞬間殺不完,再執行一次即可。這種重啟方式不是特別安全,如果配置有誤,則會重啟失敗,需要重新修改配置檔案然後再啟動,期間會消耗一點時間。不過對於目前普遍還是不怎麼嚴格的http界而言,這點時間還不至於產生太大損失,只要不是在關鍵時刻搞出來就好。如果希望沿用這種重啟辦法,我提議還是先好好測試吧。
後來我在nginx.net上看到了一種更奇妙的重啟
kill -HUP $pid($pid就是nginx master程式的程式號)
我一般這樣用
kill -HUP `cat /data/nginx/logs/nginx.pid`
這種方式的好處是實現“平滑重啟”,在ps -aux中可以看到,nginx首先啟動新程式,舊的程式仍然提供服務,在一段時間後,舊的程式服務結束就自動關閉,剩下新程式繼續服務。但是這種方式也是有缺點的,如果配置檔案有誤,或者資源衝突,則重啟失效,但nginx並沒有任何的提示!這就會時常發現改動的配置檔案沒有生效,又比較難找到問題。
所以,最後雜和了一下問題,弄了一個nginx.sh,這個版本的nginx.sh還是沒有解決kill -HUP的資源衝突的問題,但解決了配置檔案的問題。資源衝突的比如80埠被佔用、日誌檔案目錄沒有建立這種的,我再想想辦法。
#!/bin/sh
BASE_DIR='/data/'
${BASE_DIR}nginx/sbin/nginx -t -c ${BASE_DIR}nginx/conf/nginx.conf >& ${BASE_DIR}nginx/logs/nginx.start
info=`cat ${BASE_DIR}nginx/logs/nginx.start`
if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then
if [ `ps aux|grep "nginx"|grep -c "master"` == 1 ]; then
kill -HUP `cat ${BASE_DIR}nginx/logs/nginx.pid`
echo "ok"
else
killall -9 nginx
sleep 1
${BASE_DIR}nginx/sbin/nginx
fi
else
echo "######## error: ########"
cat ${BASE_DIR}nginx/logs/nginx.start
fi
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23595918/viewspace-1035634/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx重啟指令碼Nginx指令碼
- Nginx 重啟指令碼Nginx指令碼
- 分享一例指令碼發版和tomcat重啟指令碼指令碼Tomcat
- redis重啟指令碼Redis指令碼
- CentOS7 nginx啟動指令碼CentOSNginx指令碼
- redis多例項重啟指令碼薦Redis指令碼
- IIS8應用池重啟指令碼指令碼
- nginx啟動,重啟,關閉命令Nginx
- windows通過python指令碼重啟本地redisWindowsPython指令碼Redis
- Windows監控並重啟某個程式指令碼Windows指令碼
- nginx 開啟、關閉、重啟常用操作Nginx
- centos下nginx啟動、重啟、關閉CentOSNginx
- nginx的啟動、關閉和平滑重啟(=)Nginx
- iOS逆向 Shell指令碼+指令碼重簽名iOS指令碼
- 定時重啟tomcat指令碼導致的亂碼問題Tomcat指令碼
- Linux指令碼分享Linux指令碼
- linux系統下重啟tomcat的shell指令碼LinuxTomcat指令碼
- nginx關閉/重啟/啟動的操作方法Nginx
- Nginx啟動,重啟以及基本命令詳解!Nginx
- nginx日誌分割小指令碼Nginx指令碼
- 解剖Nginx·自動指令碼篇(4)工具型指令碼系列Nginx指令碼
- 使用指令碼重簽名指令碼
- 重建重定位表指令碼指令碼
- Tomcat自動檢測和重啟指令碼(Linux)薦Tomcat指令碼Linux
- Nginx每天莫名自動重啟問題Nginx
- Linux shell 指令碼分享Linux指令碼
- Nginx學習系列三Nginx的啟動、停止、修改配置檔案後重啟Nginx
- Nginx的常用命令(啟動重啟停止等)Nginx
- 精讀 Nginx·自動指令碼篇(4)工具型指令碼系列Nginx指令碼
- Nginx Gzip模組啟用和配置指令詳解Nginx
- shell指令碼一鍵安裝nginx指令碼Nginx
- nginx自己寫日誌切割指令碼Nginx指令碼
- httpd啟動指令碼httpd指令碼
- 資源分享:一份簡歷中需重點突出哪些部分?
- nginx重啟報找不到nginx.pid的解決方法Nginx
- [筆記] nginx 兩種方式 啟動 重啟 停止 升級筆記Nginx
- 解剖Nginx·自動指令碼篇(7)型別相關指令碼系列Nginx指令碼型別
- 分享:Charles 的指令碼工具盒指令碼