apache停止和重啟

2021-08-18 22:58:55 字數 1350 閱讀 6295

apache停上或重啟的有兩種,第一種傳送訊號到程序,第二種是使用apachectl指令碼執行stop,start,graceful或graceful-stop命令

訊號方式:

1.term

kill -term `cat /usr/local/apache2/logs/httpd.pid` #類似 apachectl -k stop

原理過程: 當傳送 term或stop訊號時,父程序會試圖立即殺死子程序,但殺死子程序可能需要幾秒鐘,過程中父程序退出,所有已經在處理的請求都會終止,並且不在接受其他請求

2.usr1

kill -usr1 `cat /usr/local/apache2/logs/httpd.pid` #類似 apachectl -k granceful

3.hup

kill -hup `cat /usr/local/apache2/logs/httpd.pid` #類似 apachectl -k restart

原理過程:當傳送hup或者restart訊號時,父程序會像傳送term訊號一樣殺死子程序,但是父程序不會退出,它會重新開啟配置檔案和重新開啟日誌檔案,然後產生一組新的子程序來提供服務

4.winch

kill -winch `cat /usr/local/apache2/logs/httpd.pid` #類似apachectl -k granceful-stop

原理過程:當傳送winch或者graceful-stop訊號時,父程序會建議子程序待處理請求完後再退出(如果子程序沒有在提供服務 則立即退出),之後父程序將會移除原來建立的的pidfile檔案停止所有正在監聽的埠,此過程父程序繼續執行,並且監聽正在處理的請求的子程序,一旦子程序處理完成或者超過了這個gracefulshutdowntimeout指定的處理時間,父程序也退出。如果超過了gracefulshutdowntimeout這個時間,將傳送乙個term訊號,迫使正在處理請求的子程序退出。

在這個過程中父程序移除了pidfile檔案,將無法使用apachectl或httpd傳送此訊號。

granceful-stop允許同時執行多個相同配置的httpd例項,在對httpd進行優雅的公升級時,這是乙個強大的特性,但是它也會導致一些配置的死鎖和競爭資源

為了確保磁碟上包含了pid的檔案(如鎖檔案)或unix套接字檔案(scriptsock)不受影響,它們應該在沒有問題的情況下共存,實則系統已經採取了謹慎的措施。但是如果配置了指令、第三方模組或持久的cgi,並且使用磁碟鎖或狀態檔案,那麼應該注意確保多個httpd例項不會阻塞彼此的檔案。

Apache 重啟,停止,啟動命令

檢視apache2的命令 httpd v 其中httpd root和server config file 就可以確定httpd.conf的路徑了 假設當前linux使用者的apahce安裝目錄為 usr local apache2,那麼在命令列終端中使用以下命令啟動,停止和重啟apache。1.啟動...

linux 下 apache啟動 停止 重啟命令

基本的操作方法 本文假設你的apahce安裝目錄為 usr local apache2,這些方法適合任何情況 apahce啟動命令 推薦 usr local apache2 bin apachectl start apaceh啟動 apache停止命令 usr local apache2 bin a...

Linux下apache(優雅)停止 重啟方式

立即停止 訊號 term apachectl k stop 傳送term或stop訊號到父程序可以使它立刻殺死所有子程序。這將花費一些時間來殺死所有子程序。然後父程序自己也退出。所有進行中的請求將被強行中止,而且不再接受其它請求。優雅重啟 訊號 usr1 apachectl k graceful 立...