linux 优雅重启进程,apache2 重启、停止、优雅重启、优雅停止
停止或者重新啟動apache有兩種發送信號的方法
第一種方法:
直接使用linux的kill命令向運行中的進程發送信號。你也許你會注意到你的系統里運行著很多httpd進程。但你不應該直接對它們中的任何一個發送信號,而只要對已經在pidfile中記載下了自身pid的父進程發送信號。也就是說,你不必對父進程以外的任何進程發送信號。你可以向父進程發送三種信號:term、hup、usr1?,我們過一會兒再進行詳細的說明。
你可以用下面這樣的命令來向父進程發送信號:
kill -term cat /usr/local/apache2/logs/httpd.pid
第二種方法
使用下面將要描述的httpd二進制可執行文件的?-k?命令行選項:stop、restart、graceful、graceful-stop?。不過更推薦你使用apachectl控制腳本來向httpd二進制可執行文件傳遞這些選項。
當你向httpd發送信號后,你可以這樣來讀取它的進行過程:
tail -f /usr/local/apache2/logs/error_log
1.停止
apachectl -k stop
發送term或stop信號到父進程可以使它立刻殺死所有子進程。這將花費一些時間來殺死所有子進程。然后父進程自己也退出。所有進行中的請求將被強行中止,而且不再接受其它請求。
2.重啟
apachectl -k restart
向父進程發送hup或restart信號會使它象收到term信號一樣殺掉所有的子進程,不同之處在于父進程本身并不退出。它重新讀入配置文件、重新打開日志文件。然后產生一系列新的子進程來繼續服務。
3.優雅重啟
apachectl -k graceful
usr1或graceful信號使得父進程建議子進程在完成它們現在的請求后退出(如果他們沒有進行服務,將會立刻退出)。父進程重新讀入配置文件并重新打開日志文件。每當一個子進程死掉,父進程立刻用新的配置文件產生一個新的子進程并立刻開始伺服新的請求。
4.優雅停止
apachectl -k graceful-stop
winch或graceful-stop信號使得父進程建議子進程在完成它們現在的請求后退出(如果他們沒有進行服務,將會立刻退出)。然后父進程刪除pidfile并停止在所有端口上的監聽。父進程仍然繼續運行并監視正在處理請求的子進程,一旦所有子進程完成任務并退出或者超過由gracefulshutdowntimeout指令規定的時間,
父進程將會退出。在超時的情況下,所有子進程都將接收到term信號并被強制退出。
總結
以上是生活随笔為你收集整理的linux 优雅重启进程,apache2 重启、停止、优雅重启、优雅停止的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php的防csrf攻击,zblog ph
- 下一篇: linux 内核配置mmc,Linux内