Nginx 重啟 nginx 停止 修改配置後生效

2021-08-30 09:39:28 字數 2141 閱讀 2929

[url=的rpm包自己打的[/url]

搜到別人說

[quote="某網民"]ps aux| grep nginx找到nginx的程序號

kill -hup ***x(程序號)[/quote]

於是,我就想那就這樣唄:

ps ax |grep mongrel | awk '' |xargs kill -hup[/quote]

其中[color=olive]hup是重新載入配置[/color]

後來,又看到一些

簡單說就是

[code="bash"]killall -hup nginx

nginx是超級穩定的伺服器,一般不會因為超載問題而需要重啟,重啟的目的一般都是修改配置檔案後需要載入一下。

最開始的時候,我是用最直接的重啟方式

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/'

$nginx/sbin/nginx -t -c $nginx/conf/nginx.conf >& $nginx/logs/nginx.start

info=`cat $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 $nginx/logs/nginx.pid`

echo "ok"

else

killall -9 nginx

sleep 1

$nginx/sbin/nginx

fielse

echo "######## error: ########"

cat $nginx/logs/nginx.start

fi---------------------------------------------

kill -hup `cat /data/nginx/logs/nginx.pid`

這句話比較長,不容易記住,現在發現一種更為簡潔的辦法:

killall -hup nginx

killall會將hup指令傳到所有的nginx程序裡,包括master和worker,但是worker程序並不認識hup指令,所以事實上只有master程序獲取了hup,並執行重啟。

於是乎,nginx的kill指令:

kill -usr1

kill -quit

......

都可以用killall簡化執行。

Nginx 啟動 停止 重啟

例如 root linuxserver sbin usr local nginx sbin nginx c usr local nginx conf nginx.conf 停止nginx的停止有三種方式 從容停止 1 檢視程序號 root linuxserver ps ef grep nginx 2...

Nginx啟動停止重啟

你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。1.檢視linux核心版本 uname a 2.安裝gcc編譯器,用來編譯c語言 yum install y gcc 3.安裝c 編譯...

nginx啟動 停止重啟

例如 root linuxserver sbin usr local nginx sbin nginx c usr local nginx conf nginx.conf nginx的停止有三種方式 1 檢視程序號 ps ef grep nginx2 殺死程序 kill quit 2072 1 檢視...