在PHP生命周期的各個(gè)階段,一些與服務(wù)相關(guān)的操作都是通過SAPI接口實(shí)現(xiàn)。
各個(gè)服務(wù)器抽象層之間遵守著相同的約定,這里我們稱之為SAPI接口。
在PHP的源碼中,當(dāng)需要調(diào)用服務(wù)器相關(guān)信息時(shí),全部通過SAPI接口中對應(yīng)的方法調(diào)用實(shí)現(xiàn)
php-fpm + nginx php + terminal ...
SAPI(Server Application Programming Interface)服務(wù)器應(yīng)用程序編程接口,即PHP與其他應(yīng)用交互的接口.
每個(gè)SAPI實(shí)現(xiàn)都是一個(gè)_sapi_module_struct結(jié)構(gòu)體變量。
PHP腳本要執(zhí)行有很多方式,通過Web服務(wù)器,或者直接在命令行下,也可以嵌入在其他程序中。
SAPI提供了一個(gè)和外部通信的接口,常見的SAPI有:cgi、fast-cgi、cli、isapi apache模塊的DLL
php_module_startup php_request_startup php_execute_script php_request_shutdown php_module_shutdown
php 5.3.3 以后的php-fpm不再支持php-fpm (start|stop|reload)等命令,需要使用信號控制.php-fpm master進(jìn)程可以理解以下信號
example.
[sujianhui@dev529 ~]$>ps aux | grep php-fpm root 17000 0.0 0.0 243220 7208 ? Ss 17:00 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) sujianh+ 17001 0.0 0.0 245304 7072 ? S 17:00 0:00 php-fpm: pool www sujianh+ 17002 0.0 0.0 245304 7072 ? S 17:00 0:00 php-fpm: pool www sujianh+ 17069 0.0 0.0 112816 976 pts/3 S+ 17:01 0:00 grep --color=auto php-fpm [sujianhui@dev529 ~]$>sudo kill -USR1 17000 [sujianhui@dev529 ~]$>ps aux | grep php-fpm root 17000 0.0 0.0 243220 7208 ? Ss 17:00 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) sujianh+ 17001 0.0 0.0 245304 7072 ? S 17:00 0:00 php-fpm: pool www sujianh+ 17002 0.0 0.0 245304 7072 ? S 17:00 0:00 php-fpm: pool www sujianh+ 17105 0.0 0.0 112816 972 pts/3 S+ 17:01 0:00 grep --color=auto php-fpm [sujianhui@dev529 ~]$>sudo kill -USR2 17000 [sujianhui@dev529 ~]$>ps aux | grep php-fpm root 17122 0.0 0.0 243220 7212 ? Ss 17:01 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) sujianh+ 17123 0.0 0.0 245304 7072 ? S 17:01 0:00 php-fpm: pool www sujianh+ 17124 0.0 0.0 245304 7072 ? S 17:01 0:00 php-fpm: pool www sujianh+ 17126 0.0 0.0 112816 976 pts/3 S+ 17:01 0:00 grep --color=auto php-fpm [sujianhui@dev529 ~]$>pstree 17122 -a php-fpm ├─php-fpm └─php-fpm [sujianhui@dev529 ~]$>sudo kill -INT 17122 [sujianhui@dev529 ~]$>ps aux | grep php-fpm sujianh+ 17229 0.0 0.0 112816 976 pts/3 S+ 17:03 0:00 grep --color=auto php-fpm
so we should use sudo kill -INT master.pid to kill php-fpm service.
nginx的master-worker機(jī)制與fpm大體相同.但是有一個(gè)問題需要注意,使用systemctl啟動起來的master被kill以后,worker也會死掉.
正常啟動nginx,kill掉master
[sujianhui@dev0529 sbin]$>which nginx /usr/sbin/nginx [sujianhui@dev0529 sbin]$>sudo nginx [sujianhui@dev0529 sbin]$>ps aux | grep nginx root 4562 0.0 0.0 46608 1084 ? Ss 21:46 0:00 nginx: master process nginx sujianh+ 4563 0.0 0.0 49128 2088 ? S 21:46 0:00 nginx: worker process sujianh+ 4578 0.0 0.0 112812 972 pts/0 S+ 21:46 0:00 grep --color=auto nginx [sujianhui@dev0529 sbin]$>sudo kill -9 4562 [sujianhui@dev0529 sbin]$>ps aux | grep nginx sujianh+ 4563 0.0 0.0 49128 2088 ? S 21:46 0:00 nginx: worker process sujianh+ 4612 0.0 0.0 112812 972 pts/0 S+ 21:46 0:00 grep --color=auto nginx [sujianhui@dev0529 sbin]$>kill -9 4563 [sujianhui@dev0529 sbin]$>ps aux | grep nginx sujianh+ 4638 0.0 0.0 112812 972 pts/0 S+ 21:47 0:00 grep --color=auto nginx
使用systemctl啟動的master被kill掉以后,worker也會殺掉
[sujianhui@dev0529 sbin]$>systemctl start nginx [sujianhui@dev0529 sbin]$>ps aux | grep nginx root 4678 0.0 0.0 46608 1072 ? Ss 21:47 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf sujianh+ 4679 0.0 0.0 49124 2080 ? S 21:47 0:00 nginx: worker process sujianh+ 4702 0.0 0.0 112812 972 pts/0 S+ 21:47 0:00 grep --color=auto nginx [sujianhui@dev0529 sbin]$>sudo kill -9 4678 [sujianhui@dev0529 sbin]$>ps aux | grep nginx sujianh+ 4732 0.0 0.0 112812 972 pts/0 S+ 21:47 0:00 grep --color=auto nginx
rective run
[sujianhui@dev529 ~]$>kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX [sujianhui@dev529 ~]$>sudo nginx [sudo] password for sujianhui: [sujianhui@dev529 ~]$>ps aux | grep nginx root 3628 0.0 0.0 46600 1052 ? Ss 09:49 0:00 nginx: master process nginx sujianh+ 3629 0.0 0.0 49096 2056 ? S 09:49 0:00 nginx: worker process sujianh+ 3637 0.0 0.0 112812 972 pts/0 S+ 09:49 0:00 grep --color=auto nginx [sujianhui@dev529 ~]$>sudo kill -SIGTERM 3628 [sujianhui@dev529 ~]$>ps aux | grep nginx sujianh+ 3744 0.0 0.0 112812 972 pts/0 S+ 09:50 0:00 grep --color=auto nginx [sujianhui@dev529 ~]$>sudo nginx [sujianhui@dev529 ~]$>ps aux | grep nginx root 3766 0.0 0.0 46600 1052 ? Ss 09:51 0:00 nginx: master process nginx sujianh+ 3767 0.0 0.0 49096 2056 ? S 09:51 0:00 nginx: worker process sujianh+ 3775 0.0 0.0 112812 972 pts/0 S+ 09:51 0:00 grep --color=auto nginx [sujianhui@dev529 ~]$>sudo kill -9 3766 [sujianhui@dev529 ~]$>ps aux | grep nginx sujianh+ 3767 0.0 0.0 49096 2056 ? S 09:51 0:00 nginx: worker process sujianh+ 3799 0.0 0.0 112812 972 pts/0 S+ 09:51 0:00 grep --color=auto nginx
apache prefork
到此這篇關(guān)于php7中停止php-fpm服務(wù)的文章就介紹到這了,更多相關(guān)php7停止php-fpm服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:鷹潭 六安 鶴崗 唐山 遼陽 白城 克拉瑪依 柳州
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php7中停止php-fpm服務(wù)的方法詳解》,本文關(guān)鍵詞 php7,中,停止,php-fpm,服務(wù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。