Nginx服務啟動停止

2021-10-08 12:51:52 字數 3088 閱讀 2507

nginx服務的啟停有兩種方式

給nginx程序傳送訊號

執行nginx命令(即執行nginx軟體 /sbin/ 目錄下的二進位制檔案nginx)

傳送訊號的命令:

kill -signal pid

kill命令中必須給出nginx程序的程序號pid。

nginx服務工作過程中,會啟動乙個master程序,和多個工作程序worker_proccesser,kill命令中的pid引數是指master程序號。

獲取nginx master程序號的方式有兩種:

/logs/nginx.pid檔案中儲存著master程序號,可以通過cat logs/nginx.pid命令獲取

ps -ef | grep nginx或者一步到位ps -ef | grep nginx |grep master可以傳送給nginx程序的signal訊號有以下6個

signal

說明term|int

直接停止nginx服務

quit

平緩停止

hup平滑重啟,先使用新配置檔案啟動服務,再平緩停止舊的服務

usr2

平滑公升級,先使用新版本的nginx檔案啟動新的服務,在平緩停止舊的服務

winch

平緩停止工作程序,用於平滑公升級後

usr1

用於分割日誌檔案

首先我們用nginx命令啟動nginx服務:進入/opt/nignx/sbin目錄下,執行如下命令

./nginx

然後,檢視一下nginx服務的master程序號:

cat ../logs/nginx.pid

然後,傳送hup訊號給master程序,平緩停止服務:

kill -hup 4060		#此處4060即為我通過上一條命令檢視到的master程序號
也可以直接將cat命令的結果作為kill的引數,平緩停止服務:

kill -hup  `

cat../logs/nginx.pid`

kill命令可以通過傳送訊號給nginx程序來停止、重啟、公升級nginx服務,但是如果當前沒有正在執行的nginx程序的情況下,要啟動乙個nginx服務時,還是要通過nginx命令來啟動。

進入nginx軟體的sbin目錄下,執行如下命令:

./nginx -h

-?,-h         : 獲取此命令的幫助資訊

-v : 顯示版本資訊,然後退出命令

-v : 顯示版本資訊和執行./configure命令時的配置資訊(例如執行./configure --prefix=/opt/nginx,則會將prefix配置資訊顯示出來),然後退出本命令

-t : 檢查nginx服務配置檔案是否有語法錯誤,然後退出本命令。可以與-c命令合用,來檢查另外的配置檔案。

-t : 檢查配置檔案是否有語法錯誤,並輸出所有配置資訊,然後退出本命令

-q : 與-t合用,如果配置檔案語法正確,將不輸出-t單獨使用時輸出的哪些資訊。

-s signal : 向master程序傳送訊號: stop, quit, reopen, reload

-p prefix : 用來指定啟動nginx服務時使用的配置檔案的路徑 (default: /opt/nginx/)

-c filename : 設定配置檔案的路徑 (default: conf/nginx.conf)

-g directives : 用來補充nginx配置檔案,指定一些nginx服務啟動時應用於全域性的配置

進入nginx的sbin/目錄,執行命令檢視版本資訊及配置資訊:

./nginx -v

nginx version: nginx/1.18.0

built by gcc 4.8.5 20150623 (red hat 4.8.5-39)

(gcc)

configure arguments: --prefix=/opt/nginx

./nginx -vc /opt/nginx2/nginx.conf
./nginx -reload -c /opt/nginx2/conf/nginx.conf
先用命令./nginx -p newinstalpath設定啟動服務時新版本的軟體的安裝路徑。

接著kill -usr2 pid平滑啟動新服務,

再傳送指令kill -winch pid停止舊服務的工作程序

nginx接收到usr2訊號後,會將原nginx.pid檔名更新為nginx.pid.oldbin,然後執行新版本的二進位制nginx檔案啟動服務。此時,新舊兩個版本都在提供服務,接著需要傳送winch訊號給舊版本的master程序,平滑停止舊服務的工作程序,並刪除nginx.pid.oldbin檔案。

kill -hup pid
或者

./nginx -s reload
都可以平滑重啟服務,但是前者不能指定新的配置檔案。

另外,重啟只重建工作程序,master程序並不會被停止。

kill 9 | sigkill `cat pid_file_path`
先備份老版本的安裝好的nginx軟體目錄

將新版本的nginx軟體安裝到舊安裝目錄中

先執行kill usr2 pid命令,nginx服務接到usr2訊號後,會將nginx.pid檔案的名稱改為nginx.pid.oldbin,然後執行新版本的nginx二進位制檔案啟動新的服務。

如果啟動成功,伺服器上將有兩個nginx服務共同提供web服務。這時需要向舊的服務傳送winch訊號,使舊的服務的工作程序平緩停止。

然後刪除nginx.pid.oldbin檔案。

Nginx 啟動 停止服務的指令碼

php fastcgi setting host 127.0.0.1 port 9000 childs 5 fast cgi threads default 5 check shell if shell bin bash then echo shell isn t the bash script b...

nginx啟動停止

nginx s reopen 重新開啟日誌檔案 nginx t c path to nginx.conf 測試nginx配置檔案是否正確 關閉nginx nginx s stop 快速停止nginx quit 完整有序的停止nginx 其他的停止nginx 方式 ps ef grep nginx k...

nginx啟動與停止

nginx啟動 sudo usr local nginx nginx nginx二進位制檔案絕對路徑,可以根據自己安裝路徑實際決定 nginx從容停止命令,等所有請求結束後關閉服務 ps ef grep nginx pid ppid user cpu vsz wchan command 33126 ...