您好,登錄后才能下訂單哦!
本篇內容主要講解“Nginx進程管理有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Nginx進程管理有哪些”吧!
能夠發送和處理信號的有 master 進程、worker 進程、Nginx 命令行。
首先讓我們來看下 Master 進程。
因為 master 進程會啟動 worker 進程,所以它管理 worker 進程的方式首先是監控 worker 進程有沒有發送 CHLD 信號,因為 Linux 操作系統中規定當子進程終止的時候會向父進程發送 CHLD 信號,所以如果 worker 進程由于一些模塊代碼 bug 導致 worker 進程意外終止,那么 master 進程可以立刻通過 CHLD 發現這樣一個事件,然后重新把 worker 進程拉起。
Master 進程還會通過接受一些信號,來管理 worker 進程。
Master 進程可以接受的信號有:
?TERM、INT:立刻停止 Nginx 進程?QUIT:優雅地停止 Nginx 進程,不會對用戶立刻發送結束連接請求(比如像 TCP 中的 reset 復位請求這樣的報文)?HUP:表示重載配置文件?USR1:表示重新打開日志文件,做日志文件的切割?USR2:專門針對做熱部署使用?WINCH:表示優雅的退出所有 worker 進程
其中,粉色的信號 USR2 和 WINCH 只能通過 Linux 的 kill 命令行發送信號,也就是說我們需要先找到 master 進程所在的 PID,對這個 PID 發送 USR2 或者 WINCH,而其他的 4 個有對應的 Nginx 命令的。
通常是不直接對 worker 進程發送信號的,因為我們希望由 master 進程來管理 worker 進程。雖然直接對 worker 進程發送信號,也會讓 worker 進程產生同樣的結果,但是通常不這樣做,往往是由 master 進程管理,master 進程收到信號后,會再把信號發送給 worker 進程。
Nginx 在啟動以后,Nginx會把他的 PID 放到一個文件中。默認是記錄在 Nginx安裝目錄的 /logs/nginx.pid 文件中,記錄了 Nginx 的 master 進程的 PID。
當我們再次使用 nginx -s 這樣的命令行的時候,那么 nginx 的工具命令行就會去讀取PID文件中的 master 進程的 PID,向這個 PID 發送同樣的 HUP、USR1、TERM、QUIT 這樣的信號,而這樣的命令對應著命令 reload、reopen、stop、quit,所以調用 nginx 命令行和直接用 kill 發送信號的效果是一樣的。
到此,相信大家對“Nginx進程管理有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。