国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

分享一份nginx重啟腳本

2024-09-01 13:45:07
字體:
來源:轉載
供稿:網友
最開始的時候,我是用最直接的重啟方式

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎川县| 穆棱市| 托里县| 肃宁县| 辉县市| 衢州市| 荔波县| 小金县| 特克斯县| 石渠县| 安西县| 沁水县| 卢湾区| 天津市| 山西省| 灌南县| 松江区| 漳平市| 乌拉特前旗| 台湾省| 元阳县| 竹北市| 沐川县| 阳原县| 扎囊县| 调兵山市| 通道| 永吉县| 东台市| 山东| 海原县| 城步| 上思县| 焦作市| 延安市| 南昌县| 陆河县| 奎屯市| 徐州市| 海安县| 东城区|