123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- #!/bin/sh
- #
- ### BEGIN INIT INFO
- # Provides: hhvm
- # Required-Start: $remote_fs $network
- # Required-Stop: $remote_fs $network
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Description: Starts the HHVM daemon
- ### END INIT INFO
- DAEMON=/usr/bin/hhvm
- PIDFILE=/var/run/hhvm/pid
- hhvm_SOCKET=/var/run/hhvm/sock
- hhvm_GROUP=${hhvm_GROUP:-apache}
- CONFIG_FILE="/etc/hhvm/server.ini"
- SYSTEM_CONFIG_FILE="/etc/hhvm/php.ini"
- DAEMON_ARGS="--config ${SYSTEM_CONFIG_FILE} \
- --config ${CONFIG_FILE} \
- -vPidFile=${PIDFILE}"
- do_stop () {
- try=0
- if [ ! -r $2 ]; then
- echo "warning, no pid file found - HHVM is not running?"
- exit 1
- fi
- PID=`cat $2`
- kill $1 $PID
- # Waiting for HHVM to shutdown
- while test $try -lt 35
- do
- if ps -p $PID | grep -q $PID
- then
- echo -n .
- try=`expr $try + 1`
- sleep 1
- else
- try=''
- break
- fi
- done
- if [ -n "$try" ]
- then
- echo " failed. Use force-quit"
- exit 1
- else
- rm -f $2
- echo " done"
- fi
- }
- wait_for_pid () {
- try=0
- while test $try -lt 35
- do
- if [ -f "$1" ] ; then
- try=''
- break
- fi
- echo -n .
- try=`expr $try + 1`
- sleep 1
- done
- }
- case "$1" in
- start)
- echo -n "Starting HHVM "
- if [ -r $PIDFILE ]; then
- echo "warning, pid file found - HHVM is already running?"
- exit 1
- fi
- echo
- $DAEMON --mode daemon $DAEMON_ARGS
- if [ "$?" != 0 ]
- then
- echo "Failed"
- exit 1
- fi
- mkdir -p `dirname $PIDFILE`
- wait_for_pid $PIDFILE
- if [ -n "$try" ] ; then
- echo " failed"
- exit 1
- fi
- # Set the socket permissions if HHVM uses UDS
- if [ -S "$hhvm_SOCKET" ]
- then
- chgrp $hhvm_GROUP $hhvm_SOCKET
- fi
- echo " done"
- ;;
- stop)
- echo -n "Stopping HHVM "
- do_stop -QUIT $PIDFILE
- ;;
- force-quit)
- echo -n "Terminating HHVM "
- do_stop -TERM $PIDFILE
- ;;
- status)
- if [ ! -r $PIDFILE ]
- then
- echo "HHVM is stopped"
- exit 0
- fi
- PID=`cat $PIDFILE`
- if ps -p $PID | grep -q $PID
- then
- echo "HHVM (pid $PID) is running..."
- else
- echo "HHVM dead but pid file exists"
- fi
- ;;
- restart)
- sh $0 stop
- sh $0 start
- ;;
- reload)
- echo -n "Reload service HHVM "
- if [ ! -r $PIDFILE ]
- then
- echo "warning, no pid file found - HHVM is not running?"
- exit 1
- fi
- kill -USR2 `cat $PIDFILE`
- echo " done"
- ;;
- *)
- echo "Usage: $0 {start|stop|status|restart|reload|force-quit}" >&2
- exit 1
- ;;
- esac
|