關于php-fpm.pid
對于正在使用php-fpm的運維人員而言,fpm.pid是一項非常重要的指標。但是很多人并不十分了解它的作用,下面就來詳細地介紹一下。
首先,fpm.pid是一個文件,保存的是php-fpm主進程的進程ID。通過這個文件,可以實現多種操作,比如啟動、停止、重啟php-fpm。其中,啟動和停止操作是最常見的。
$ sudo service php7.2-fpm start $ sudo service php7.2-fpm stop
在上面的命令中,就是通過讀取fpm.pid文件來實現啟動和停止php-fpm的。
我們來看看這個文件究竟是怎么生成的。php-fpm的運行原理是一個主進程和多個子進程的模式,主進程會不斷地監控子進程的運行狀態。而子進程會根據配置文件中的設置來決定自己所承載的任務類型(如何解析請求等)。
在啟動php-fpm時,主進程會首先創建一個進程,然后這個進程會再次創建多個子進程。php-fpm的默認配置文件是/etc/php-fpm.conf,我們可以在這個文件中找到以下兩個參數:
pid = run/php-fpm.pid # 指定pid文件路徑 pm.max_children = 10 # 最大子進程數
其中,pid參數表示pid文件的路徑,我們可以指定它所在的目錄和文件名。而pm.max_children則是指定了php-fpm可以創建的最大子進程數量。
接下來,如果我們想手動殺死php-fpm的進程,可以使用以下命令:
$ kill -INT `cat php-fpm.pid`
這條命令會向php-fpm的主進程發送一個INT信號,在收到信號后php-fpm會先關閉所有的監聽句柄,然后再釋放掉子進程。
需要注意的是,在使用這條命令之前,需要確定php-fpm正在運行,并且確保fpm.pid文件已經生成了。否則,將會有以下報錯:
kill: cat: No such file or directory
如果在啟動php-fpm的時候沒有指定pid文件的路徑,那么php-fpm會默認將pid文件保存在/run/php-fpm.pid中。
總的來說,fpm.pid文件是一個非常重要的文件,它不僅記錄了php-fpm的主進程ID,還可以被用來實現多種控制操作。如果希望更加了解php-fpm的運行原理,可以詳細地閱讀官方文檔。