diff options
author | Michael Orlitzky <mjo@gentoo.org> | 2017-07-25 19:45:42 -0400 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2017-07-25 19:45:42 -0400 |
commit | 66fee3ec3c7a8cea2332123c6a772d1bc0e35dda (patch) | |
tree | e29d230a2bbb29e9ecea607dc3a80b14adf99b92 /openrc | |
parent | configure.ac: update the version to 0.9.3. (diff) | |
download | eselect-php-66fee3ec3c7a8cea2332123c6a772d1bc0e35dda.tar.gz eselect-php-66fee3ec3c7a8cea2332123c6a772d1bc0e35dda.tar.bz2 eselect-php-66fee3ec3c7a8cea2332123c6a772d1bc0e35dda.zip |
Rename OpenRC init script and config file.
The OpenRC init script is now installed by the Makefile, so to be
useful it needs to be called "php-fpm". To that end, I've renamed both
the init script and the config file to lack the word
"example". Moreover, now that these files are code-like and not
documentation-like, I've renamed the directory containing them from
"doc" to "openrc".
Diffstat (limited to 'openrc')
-rw-r--r-- | openrc/php-fpm.conf | 8 | ||||
-rw-r--r-- | openrc/php-fpm.in.in | 77 |
2 files changed, 85 insertions, 0 deletions
diff --git a/openrc/php-fpm.conf b/openrc/php-fpm.conf new file mode 100644 index 0000000..b3efdbf --- /dev/null +++ b/openrc/php-fpm.conf @@ -0,0 +1,8 @@ +# The OpenRC conf.d file that accompanies the php-fpm init script. +# Not to be confused with the php-fpm.conf file that ships with +# PHP itself. + +# Set the umask of the FPM process to the given (octal) value. This is +# passed directly to start-stop-daemon. If not specified, the system +# default will be used. +#PHP_FPM_UMASK=0002 diff --git a/openrc/php-fpm.in.in b/openrc/php-fpm.in.in new file mode 100644 index 0000000..2eaa2c3 --- /dev/null +++ b/openrc/php-fpm.in.in @@ -0,0 +1,77 @@ +#!/sbin/openrc-run + +# +# We support both slot-agnostic and slotted versions of the init +# script. The slotted versions would be named something like +# php-fpm-php7.1, and PHP_SLOT below would be set to "php7.1". But we +# also support a general init script named "php-fpm" that uses +# whatever the currently-eselected fpm implementation is. In that +# case, PHP_SLOT winds up set to "php-fpm" and we need to get the +# actual slot by querying eselect. +# +# An open question is, what should we do if the user has both a +# slot-agnostic and slotted init script, which happen to point to the +# same slot? In other words, if the user has a php-fpm init script and +# slot php7.1 eselected, but also a php-fpm-php7.1 init script. Should +# they manage the same instance? I think so... +# +PHP_SLOT="${SVCNAME#php-fpm-}" +if [ "${PHP_SLOT}" = "php-fpm" ] ; then + PHP_SLOT="$(eselect php show fpm)" +fi + +PHP_FPM_CONF="@SYSCONFDIR@/php/fpm-${PHP_SLOT}/php-fpm.conf" + +command="@LIBDIR@/${PHP_SLOT}/bin/php-fpm" +pidfile="@piddir@/php-fpm-${PHP_SLOT}.pid" + +# Force the daemon into the background and make it use our pid file, +# regardless of what the config file says. +command_args="--fpm-config ${PHP_FPM_CONF} --pid ${pidfile} --daemonize" +extra_started_commands="reload" +extra_commands="configtest" + +# Wait five seconds after starting for the pidfile to show up. +start_stop_daemon_args="--wait 5000 ${PHP_FPM_UMASK:+--umask ${PHP_FPM_UMASK}}" + +configtest() { + ebegin "Testing PHP FastCGI Process Manager configuration" + + # Hide the "test is successful" message (which goes to stderr) if + # the test passed, but show the entire output if the test failed + # because it may contain hints about the problem. + OUTPUT=$( ${command} ${command_args} --test 2>&1 ) + + # Save this so `echo` doesn't clobber it. + local exit_code=$? + [ $exit_code -ne 0 ] && echo "${OUTPUT}" >&2 + eend $exit_code +} + +start_pre() { + # If this isn't a restart, make sure that the user's config isn't + # busted before we try to start the daemon (this will produce + # better error messages than if we just try to start it blindly). + # + # If, on the other hand, this *is* a restart, then the stop_pre + # action will have ensured that the config is usable and we don't + # need to do that again. + if [ "${RC_CMD}" != "restart" ] ; then + configtest || return $? + fi +} + +stop_pre() { + # If this is a restart, check to make sure the user's config + # isn't busted before we stop the running daemon. + if [ "${RC_CMD}" = "restart" ] ; then + configtest || return $? + fi +} + +reload() { + configtest || return $? + ebegin "Reloading PHP FastCGI Process Manager" + start-stop-daemon --signal USR2 --pidfile "${pidfile}" + eend $? +} |