[Pkg-php-commits] [php/debian-sid] Update php5-fpm.init according to latest /etc/init.d/skeleton
Ondřej Surý
ondrej at sury.org
Thu Mar 24 08:13:50 UTC 2011
---
debian/php5-fpm.init | 181 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 139 insertions(+), 42 deletions(-)
diff --git a/debian/php5-fpm.init b/debian/php5-fpm.init
index 4889c55..25badb3 100644
--- a/debian/php5-fpm.init
+++ b/debian/php5-fpm.init
@@ -1,68 +1,165 @@
#!/bin/sh
-
### BEGIN INIT INFO
# Provides: php-fpm php5-fpm
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop:
-# Short-Description: starts php-fpm
+# Short-Description: starts php5-fpm
+# Description: Starts PHP5 FastCGI Process Manager Daemon
### END INIT INFO
-set -u
+# Author: Ondrej Sury <ondrej at debian.org>
-DAEMON="PHP5 FPM"
-FPM_CMD=/usr/sbin/php5-fpm
-FPM_CONF=/etc/php5/fpm/php-fpm.conf
-FPM_PID=/var/run/php5-fpm.pid
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="PHP5 FastCGI Process Manager"
+NAME=php5-fpm
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS="--fpm-config /etc/php5/fpm/php-fpm.conf"
+PIDFILE=/var/run/php5-fpm.pid
TIMEOUT=30
+SCRIPTNAME=/etc/init.d/$NAME
-FPM_OPTIONS="--fpm-config $FPM_CONF"
-SSD_OPTIONS="--oknodo --quiet --pidfile $FPM_PID --exec $FPM_CMD"
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
-. /lib/lsb/init-functions
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-# Test the correctness of the config file
-FPM_ERROR=$($FPM_CMD $FPM_OPTIONS -t | grep "\[ERROR\]")
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
-if [ -n "${FPM_ERROR}" ]; then
- echo "Please check your configuration file..."
- echo $FPM_ERROR
- exit 1
-fi
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
-case "$1" in
- start)
- log_begin_msg "Starting $DAEMON..."
+#
+# Function to check the correctness of the config file
+#
+do_check()
+{
+ FPM_ERROR=$($DAEMON $DAEMON_ARGS -t 2>&1| grep "\[ERROR\]")
- /sbin/start-stop-daemon --start $SSD_OPTIONS -- $FPM_OPTIONS
+ if [ -n "${FPM_ERROR}" ]; then
+ echo "Please check your configuration file..."
+ echo $FPM_ERROR
+ return 1
+ fi
+ return 0
+}
- log_end_msg $?
- ;;
- stop)
- log_begin_msg "Stopping $DAEMON..."
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+ $DAEMON_ARGS \
+ || return 2
+ # Add code here, if necessary, that waits for the process to be ready
+ # to handle requests from services started subsequently which depend
+ # on this one. As a last resort, sleep for some time.
+}
- /sbin/start-stop-daemon --stop $SSD_OPTIONS
- log_end_msg $?
- ;;
- graceful-stop)
- log_begin_msg "Gracefully stopping $DAEMON..."
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/$TIMEOUT/KILL/5 --pidfile $PIDFILE --name $NAME
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+ # Wait for children to finish too if this is a daemon that forks
+ # and if the daemon is only ever run from this initscript.
+ # If the above conditions are not satisfied then add some other code
+ # that waits for the process to drop all resources that could be
+ # needed by services started subsequently. A last resort is to
+ # sleep for some time.
+ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+ [ "$?" = 2 ] && return 2
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
- /sbin/start-stop-daemon --stop --retry QUIT/$TIMEOUT/TERM $SSD_OPTIONS
- log_end_msg $?
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- reload|force-reload)
- log_begin_msg "Reloading $DAEMON..."
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ #
+ # If the daemon can reload its configuration without
+ # restarting (for example, when it is sent a SIGHUP),
+ # then implement that here.
+ #
+ start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+ return 0
+}
- /sbin/start-stop-daemon --stop --signal USR2 $SSD_OPTIONS
+case "$1" in
+ start)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+ do_check
+ case "$?" in
+ 0)
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ 1) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+ ;;
+ check)
+ do_check
+ ;;
+ reload|force-reload)
+ log_daemon_msg "Reloading $DESC" "$NAME"
+ do_reload
log_end_msg $?
- ;;
+ ;;
+ restart)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
*)
- echo "Usage: $0 {start|stop|graceful-stop|restart|reload|force-reload}"
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
exit 1
;;
esac
--
1.7.1
More information about the Pkg-php-commits
mailing list