Fixed init script for multislotting. Bug 390307. Thanks to Guillaume Castagnino and...
authorOle Markus With <olemarkus@gentoo.org>
Fri, 18 Nov 2011 08:41:13 +0000 (08:41 +0000)
committerOle Markus With <olemarkus@gentoo.org>
Fri, 18 Nov 2011 08:41:13 +0000 (08:41 +0000)
Package-Manager: portage-2.2.0_alpha71/cvs/Linux x86_64

dev-lang/php/ChangeLog
dev-lang/php/Manifest
dev-lang/php/files/php-fpm.init

index eb4b5c8b7f3692ec88743147427ae5b45a861c72..184804eed306511d0d815df9f15b5842dd83a8af 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for dev-lang/php
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/ChangeLog,v 1.521 2011/11/11 13:18:38 olemarkus Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/php/ChangeLog,v 1.522 2011/11/18 08:41:13 olemarkus Exp $
+
+  18 Nov 2011; Ole Markus With <olemarkus@gentoo.org> files/php-fpm.init:
+  Fixed init script for multislotting. Bug 390307. Thanks to Guillaume
+  Castagnino and Piotr Karbowski for input
 
   11 Nov 2011; Ole Markus With <olemarkus@gentoo.org> -php-5.4.0_beta2.ebuild:
   Removed beta of 5.4
index bedf208745d7c8dbb19fe95866514f1a791211e9..e5a321395e7e684f4ea776372ec244a39931f93f 100644 (file)
@@ -18,7 +18,7 @@ AUX eblits/src_prepare-v4.eblit 2317 RMD160 22833c1caa6f7530230b0809e119eeb2dbba
 AUX eblits/src_test-v1.eblit 1530 RMD160 10031a5128dab729106c6fbfe4e899b1583818cb SHA1 0f1abf995913c2c381e2496b8670ea4f6e97964b SHA256 67501925cfdaf9043e4985d0f1c797e62fb42bf47e6863b5ffdecb104888e82c
 AUX php-fpm-r1.conf 12966 RMD160 2710840ccbd847f74af0486929b6b9af87bf2c51 SHA1 4f0cca8cf24936012c9ee5cb2eaa1a0b391e77b3 SHA256 c4308a92ade93812c6579b74a72cd1f3e1a35f7e63289722f461771d5702448c
 AUX php-fpm-r4.init 954 RMD160 19a097406bd82fec0a75175fa000c1f6c7757b0d SHA1 cfa42214e35e9abe8bfe099b5aec35ca2230b6ad SHA256 aba14f04126f474d5809b9a7976aca65c6ec895896de736b606c798c4aa04366
-AUX php-fpm.init 385 RMD160 0e266738ceb3853ce335db6375b5438bdea597db SHA1 bce556ebbd17e5192250f70ead99e8c70d9529c1 SHA256 baba8dab2cadc8bdf107e6fe5cede2f5faaabff1281781a0a30b3be79964c94e
+AUX php-fpm.init 1157 RMD160 19b129c9254efcbba39d4bf3f77745681497a34d SHA1 0b4b5ba0f10ca1dedc2ea6143781b3bc6fa5915c SHA256 37e34461babfb5881169f9729fbdde7d4aba533f123e2c480fe25ac3b863d3e7
 AUX php5-ldvs 22 RMD160 5846dab2745b68a88175dd4e72d0b8cf4756dd46 SHA1 592398c92575adb14ec972847ce2aca28a7b9c2c SHA256 b79d0e52b1b3b4543b31ad45525ae1c2814a27ea8e676772ab10bf6fb12dfe79
 DIST php-5.2.17.tar.bz2 9092312 RMD160 567fa8d718b93fb83a89494c83a8bec224ac99e9 SHA1 d68f3b09f766990d815a3c4c63c157db8dab8095 SHA256 e81beb13ec242ab700e56f366e9da52fd6cf18961d155b23304ca870e53f116c
 DIST php-5.3.8.tar.bz2 11190060 RMD160 f18a18e2dfd7ea7885760eec2a05b3c4a15ad9db SHA1 8f29029e092f262876bfdd2ce56f6867e2b74b85 SHA256 a1dd06fd5593e97d9a5bd9818d6501d28d3ee8f09b83f0ec78f7cdfc060f3ea2
@@ -34,5 +34,5 @@ EBUILD php-5.2.17.ebuild 9357 RMD160 0b58506aa7df24546ecbcf8fce42a6ce7f5cc2f2 SH
 EBUILD php-5.3.8.ebuild 9601 RMD160 82879062916c7e796f872e8627bedf79bf912a0e SHA1 05d6bae0984a63b8e958cd2fae30b4dccc5e7664 SHA256 6a9dc8758b2b219d854c6af51d3245ffdfd6ed732f0a2f7e7c80b32fde09ca0d
 EBUILD php-5.3.9_rc1.ebuild 11665 RMD160 bd460ad19d1b84e6cc630c1e1410fb0dd925f788 SHA1 438bdd1d05f86d3d9eaef8ae6a0f97e9630b60f2 SHA256 4d1621135856512b6f426f8724cd32e4ad063bf0d1f5b8790dc5cb63b6fbac5a
 EBUILD php-5.4.0_rc1.ebuild 8579 RMD160 35d43804cf6af0af3b14c47824b08b98b25a4118 SHA1 3f32b99e456ef6577079f0b57d923dbf9de4481c SHA256 4ae41e327bc363abd7b9ffb4c869256b661fc4a21a8beb18015bec9150609267
-MISC ChangeLog 88915 RMD160 dfb96c1d8380ff6e7070c813134d179acc5c6b5f SHA1 c6b3394f600c21bdbce373f87592a8aa3888b5b3 SHA256 7c34c8056ad68d8617c1655d033dbfddf14f2250a39e2b935d286afe018ce5ff
+MISC ChangeLog 89104 RMD160 4cb3ab31793d81ddd240737b5ec43f6e0a4b2f07 SHA1 35516dbbb8a50b35568511972df3bb287be61a72 SHA256 6651cb887b4e6e9a995393d7499b1af50bc6809c3e9e39a93285f831278eaf2d
 MISC metadata.xml 2075 RMD160 e2eb44e39169dc2ff8e099d670a222e7102b1aea SHA1 9cebbc373dc8441aa0374132a3b5d87df6d37ffc SHA256 3d8bc9305be300ef7ef92d18ba5476927ec90a5b6d43c2408936229590ff5ac5
index adcfd3275bbba699374a42cfb62a5e3ace2da044..a186d83478c54341feb45e5f3f936b1ca200d013 100755 (executable)
@@ -1,8 +1,15 @@
 #!/sbin/runscript
 
-PHP_FPM_CONF="/etc/php/fpm-php5/php-fpm.conf"
+set_phpvars() {
+       PHPSLOT=${SVCNAME#php-fpm-}
+       [ ${PHPSLOT} = 'php-fpm' ] && PHPSLOT="$(eselect php show fpm)"
 
-opts="depend start stop reload"
+       PHP_FPM_CONF="/etc/php/fpm-${PHPSLOT}/php-fpm.conf"
+       PHP_FPM_PID="/var/run/php-fpm-${PHPSLOT}.pid"
+}
+
+extra_commands="depend"
+extra_started_commands="reload"
 
 depend() {
        need net
@@ -10,13 +17,31 @@ depend() {
 }
 
 start() {
-       ebegin "Starting PHP FastCGI server"
-       start-stop-daemon --start --exec /usr/bin/php-fpm -- -y "${PHP_FPM_CONF}"
-       eend $?
+        ebegin "Starting PHP FastCGI Process Manager"
+       set_phpvars
+        start-stop-daemon --start --pidfile ${PHP_FPM_PID} --exec \
+            /usr/lib/${PHPSLOT}/bin/php-fpm -- -y "${PHP_FPM_CONF}" -g "${PHP_FPM_PID}"
+        local i=0
+        local timeout=5
+        while [ ! -f ${PHP_FPM_PID} ] && [ $i -le $timeout ]; do
+            sleep 1
+            i=$(($i + 1))
+        done
+        
+        [ $timeout -gt $i ]
+        eend $?
 }
 
 stop() {
-       ebegin "Stopping PHP FastCGI server"
-       start-stop-daemon --stop --name php-fpm
-       eend $?
+        ebegin "Stopping PHP FastCGI Process Manager"
+       set_phpvars
+        start-stop-daemon --signal QUIT --stop --exec /usr/lib/${PHPSLOT}/bin/php-fpm --pidfile ${PHP_FPM_PID}
+        eend $?
+}
+
+reload() {
+    ebegin "Reloading PHP FastCGI Process Manager"
+    set_phpvars
+    [ -f ${PHP_FPM_PID} ] && kill -USR2 $(cat ${PHP_FPM_PID})
+    eend $?
 }