nginx的啓動、中止、平滑重啓

1、Nginx 的啓動

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

    參數 "-c" 指定了配置文件的路徑,若是不加 "-c" 參數,Nginx 會默認加載其安裝目錄的 conf 子目錄中的 nginx.conf 文件,在本例中即:/usr/local/nginx/conf/nginx.conf。nginx

 

2、Nginx 的中止

 

能夠經過 ps 命令來查找 Nginx 的主進程號:web

ps -ef|grep nginx

從圖中能夠看到,1 個 Nginx 進程的備註信息爲 「master process」,表示它爲主進程,另外的 2 個進程的備註信息爲 「worker process」,表示它們爲子進程。3781爲主進程號。bash

若是在 nginx.conf 配置文件中指定了 pid 文件存放的路徑 (例如:/usr/local/webserver/nginx/nginx.pid;),該文件中存放的就是 Nginx 當前的進程號。若是沒有指定 pid 文件存放的路徑,nginx.pid 文件默認存放在 Nginx 安裝目錄的 logs 目錄下。因此,咱們能夠直接經過如下命令來完成命令來完成中止,省下尋找 Nginx 主進程號的步驟:spa

kill -信號類型 `cat /usr/local/webserver/nginx/nginx.pid`

(1) 從容中止 Nginx日誌

kill -QUIT Nginx主進程號

code

kill -QUIT `cat /usr/local/webserver/nginx/nginx.pid`

 

(2) 快速中止 Nginxserver

kill -TERM Nginx主進程號
kill -TERM `cat /usr/local/webserver/nginx/nginx.pid`

進程

kill -INT Nginx主進程號
kill -INT `cat /usr/local/webserver/nginx/nginx.pid`

 

(3) 強制中止全部 Nginx 進程ast

pkill -9 nginx

 

3、Nginx 的平滑重啓

    若是改變了 Nginx 的配置文件 (nginx.conf),想要重啓 Nginx ,一樣能夠經過發送系統信號給 Nginx 主進程的方式來進行。不過,重啓以前,要確認 Nginx 配置文件 (nginx.conf) 的語法是正確的,不然 Nginx 將不會加載新的配置文件。經過如下命令能夠判斷 Nginx 配置文件是否正確:class

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

    若是配置文件不正確,屏幕將會提示配置文件的第幾行出錯;

    若是配置文件正確,屏幕將提示如下兩行信息:

    

     這時候,就能夠平滑重啓 Nginx 了。

 

kill -HUP Nginx主進程號

    或

kill -HUP `cat /usr/local/webserver/nginx/nginx.pid`

 

    當 Nginx 接收到 HUP 信號時,它會嘗試先解析配置文件 (若是指定配置文件,就使用指定的,不然使用默認的),若是成功,就應用新的配置文件 ( 例如,從新打開日誌文件或監聽的套接字 )。以後, Nginx 運行新的工做進程並從容關閉舊的工做進程。通知工做進程關閉監聽套接字,可是繼續爲當前鏈接的客戶提供服務。全部客戶端的服務完成後,舊的工做進程被關閉。若是新的配置文件應用失敗,Nginx 將繼續使用舊的配置進行工做。

 

4、Nginx 的信號控制

        在上一節中,咱們使用了信號來控制 Nginx 中止、平滑重啓,Nginx 支持如下幾種信號:

  • TERM,INT 快速關閉;
  • QUIT 從容關閉;
  • HUP 平滑重啓,從新加載配置文件;
  • USR1 從新打開日誌文件,在切割日誌時用途較大;
  • USR2 平滑升級可執行程序;
  • WINCH 從容關閉工做進程。
相關文章
相關標籤/搜索