mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-11-02 19:20:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			135 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#! /bin/sh
 | 
						|
### BEGIN INIT INFO
 | 
						|
# Provides:          php-fastcgi
 | 
						|
# Required-Start:    $all
 | 
						|
# Required-Stop:     $all
 | 
						|
# Default-Start:     2 3 4 5
 | 
						|
# Default-Stop:      0 1 6
 | 
						|
# Short-Description: Start and stop php-cgi in external FASTCGI mode
 | 
						|
# Description:       Start and stop php-cgi in external FASTCGI mode
 | 
						|
### END INIT INFO
 | 
						|
 | 
						|
# Author: Kurt Zankl
 | 
						|
# via: http://blog.codefront.net/2007/06/11/nginx-php-and-a-php-fastcgi-daemon-init-script/
 | 
						|
# But modified by JT.
 | 
						|
 | 
						|
# Do NOT "set -e"
 | 
						|
 | 
						|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
 | 
						|
DESC="php-fastcgi"
 | 
						|
NAME=php-fastcgi
 | 
						|
DAEMON=/usr/bin/php-cgi
 | 
						|
PIDFILE=/var/run/$NAME.pid
 | 
						|
SCRIPTNAME=/etc/init.d/$NAME
 | 
						|
PHP_CONFIG_FILE=/etc/php5/cgi/php.ini
 | 
						|
 | 
						|
# Exit if the package is not installed
 | 
						|
[ -x "$DAEMON" ] || exit 0
 | 
						|
 | 
						|
# Set defaults.
 | 
						|
START=yes
 | 
						|
EXEC_AS_USER=www-data
 | 
						|
#FCGI_SOCKET=localhost:9000
 | 
						|
FCGI_SOCKET=/tmp/php-fastcgi.$EXEC_AS_USER.sock
 | 
						|
PHP_FCGI_CHILDREN=4
 | 
						|
PHP_FCGI_MAX_REQUESTS=1000
 | 
						|
 | 
						|
# Read configuration variable file if it is present
 | 
						|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
 | 
						|
 | 
						|
# Load the VERBOSE setting and other rcS variables
 | 
						|
. /lib/init/vars.sh
 | 
						|
 | 
						|
# Define LSB log_* functions.
 | 
						|
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
 | 
						|
. /lib/lsb/init-functions
 | 
						|
 | 
						|
# If the daemon is not enabled, give the user a warning and then exit,
 | 
						|
# unless we are stopping the daemon
 | 
						|
if [ "$START" != "yes" -a "$1" != "stop" ]; then
 | 
						|
        log_warning_msg "To enable $NAME, edit /etc/default/$NAME and set START=yes"
 | 
						|
        exit 0
 | 
						|
fi
 | 
						|
 | 
						|
# Process configuration
 | 
						|
export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS
 | 
						|
DAEMON_ARGS="-q -b $FCGI_SOCKET -c $PHP_CONFIG_FILE"
 | 
						|
 | 
						|
 | 
						|
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 \
 | 
						|
                --background --make-pidfile --chuid $EXEC_AS_USER --startas $DAEMON -- \
 | 
						|
                $DAEMON_ARGS \
 | 
						|
                || return 2
 | 
						|
}
 | 
						|
 | 
						|
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/30/KILL/5 --pidfile $PIDFILE > /dev/null # --name $DAEMON
 | 
						|
        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"
 | 
						|
}
 | 
						|
case "$1" in
 | 
						|
  start)
 | 
						|
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
 | 
						|
        do_start
 | 
						|
        case "$?" in
 | 
						|
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
 | 
						|
                2) [ "$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
 | 
						|
        ;;
 | 
						|
  restart|force-reload)
 | 
						|
        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: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
 | 
						|
        exit 3
 | 
						|
        ;;
 | 
						|
esac
 |