123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- #! /bin/sh
- . /lib/lsb/init-functions
-
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- DAEMON=/usr/local/nginx/sbin/nginx
-
- PS="nginx"
- PIDNAME="nginx"
- PIDFILE=$PIDNAME.pid
- PIDSPATH=/var/run
-
- DESCRIPTION="Nginx Server..."
-
- RUNAS=root
-
- SCRIPT_OK=0
- SCRIPT_ERROR=1
- TRUE=1
- FALSE=0
-
- lockfile=/var/lock/subsys/nginx
- NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
-
-
- test -x $DAEMON || exit 0
-
- if [ -f /etc/default/nginx ] ; then
- . /etc/default/nginx
- fi
-
-
-
- setFilePerms(){
-
- if [ -f $PIDSPATH/$PIDFILE ]; then
- chmod 400 $PIDSPATH/$PIDFILE
- fi
- }
-
- configtest() {
- $DAEMON -t -c $NGINX_CONF_FILE
- }
-
- getPSCount() {
- return `pgrep -f $PS | wc -l`
- }
-
- isRunning() {
- if [ $1 ]; then
- pidof_daemon $1
- PID=$?
-
- if [ $PID -gt 0 ]; then
- return 1
- else
- return 0
- fi
- else
- pidof_daemon
- PID=$?
-
- if [ $PID -gt 0 ]; then
- return 1
- else
- return 0
- fi
- fi
- }
-
- wait_for_pid () {
- try=0
-
- while test $try -lt 35 ; do
-
- case "$1" in
- 'created')
- if [ -f "$2" ] ; then
- try=''
- break
- fi
- ;;
-
- 'removed')
- if [ ! -f "$2" ] ; then
- try=''
- break
- fi
- ;;
- esac
-
-
- try=`expr $try + 1`
- sleep 1
- done
- }
-
- status(){
- isRunning
- isAlive=$?
-
- if [ "${isAlive}" -eq $TRUE ]; then
- echo "$PIDNAME found running with processes: `pidof $PS`"
- else
- echo "$PIDNAME is NOT running."
- fi
-
-
- }
-
- removePIDFile(){
- if [ $1 ]; then
- if [ -f $1 ]; then
- rm -f $1
- fi
- else
-
- if [ -f $PIDSPATH/$PIDFILE ]; then
- rm -f $PIDSPATH/$PIDFILE
- fi
- fi
- }
-
- start() {
- log_daemon_msg "Starting $DESCRIPTION"
-
- isRunning
- isAlive=$?
-
- if [ "${isAlive}" -eq $TRUE ]; then
- log_end_msg $SCRIPT_ERROR
- else
- start-stop-daemon --start --quiet --chuid $RUNAS --pidfile $PIDSPATH/$PIDFILE --exec $DAEMON \
- -- -c $NGINX_CONF_FILE
- setFilePerms
- log_end_msg $SCRIPT_OK
- fi
- }
-
- stop() {
- log_daemon_msg "Stopping $DESCRIPTION"
-
- isRunning
- isAlive=$?
- if [ "${isAlive}" -eq $TRUE ]; then
- start-stop-daemon --stop --quiet --pidfile $PIDSPATH/$PIDFILE
-
- wait_for_pid 'removed' $PIDSPATH/$PIDFILE
-
- if [ -n "$try" ] ; then
- log_end_msg $SCRIPT_ERROR
- else
- removePIDFile
- log_end_msg $SCRIPT_OK
- fi
-
- else
- log_end_msg $SCRIPT_ERROR
- fi
- }
-
- reload() {
- configtest || return $?
-
- log_daemon_msg "Reloading (via HUP) $DESCRIPTION"
-
- isRunning
- if [ $? -eq $TRUE ]; then
- `killall -HUP $PS`
-
- log_end_msg $SCRIPT_OK
- else
- log_end_msg $SCRIPT_ERROR
- fi
- }
-
- quietupgrade() {
- log_daemon_msg "Peforming Quiet Upgrade $DESCRIPTION"
-
- isRunning
- isAlive=$?
- if [ "${isAlive}" -eq $TRUE ]; then
- kill -USR2 `cat $PIDSPATH/$PIDFILE`
- kill -WINCH `cat $PIDSPATH/$PIDFILE.oldbin`
-
- isRunning
- isAlive=$?
- if [ "${isAlive}" -eq $TRUE ]; then
- kill -QUIT `cat $PIDSPATH/$PIDFILE.oldbin`
- wait_for_pid 'removed' $PIDSPATH/$PIDFILE.oldbin
- removePIDFile $PIDSPATH/$PIDFILE.oldbin
-
- log_end_msg $SCRIPT_OK
- else
- log_end_msg $SCRIPT_ERROR
-
- log_daemon_msg "ERROR! Reverting back to original $DESCRIPTION"
-
- kill -HUP `cat $PIDSPATH/$PIDFILE`
- kill -TERM `cat $PIDSPATH/$PIDFILE.oldbin`
- kill -QUIT `cat $PIDSPATH/$PIDFILE.oldbin`
-
- wait_for_pid 'removed' $PIDSPATH/$PIDFILE.oldbin
- removePIDFile $PIDSPATH/$PIDFILE.oldbin
-
- log_end_msg $SCRIPT_ok
- fi
- else
- log_end_msg $SCRIPT_ERROR
- fi
- }
-
- terminate() {
- log_daemon_msg "Force terminating (via KILL) $DESCRIPTION"
-
- PIDS=`pidof $PS` || true
-
- [ -e $PIDSPATH/$PIDFILE ] && PIDS2=`cat $PIDSPATH/$PIDFILE`
-
- for i in $PIDS; do
- if [ "$i" = "$PIDS2" ]; then
- kill $i
- wait_for_pid 'removed' $PIDSPATH/$PIDFILE
- removePIDFile
- fi
- done
-
- log_end_msg $SCRIPT_OK
- }
-
- destroy() {
- log_daemon_msg "Force terminating and may include self (via KILLALL) $DESCRIPTION"
- killall $PS -q >> /dev/null 2>&1
- log_end_msg $SCRIPT_OK
- }
-
- pidof_daemon() {
- PIDS=`pidof $PS` || true
-
- [ -e $PIDSPATH/$PIDFILE ] && PIDS2=`cat $PIDSPATH/$PIDFILE`
-
- for i in $PIDS; do
- if [ "$i" = "$PIDS2" ]; then
- return 1
- fi
- done
- return 0
- }
-
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart|force-reload)
- stop
- sleep 3
- start
- ;;
- reload)
- $1
- ;;
- status)
- status
- ;;
- configtest)
- $1
- ;;
- quietupgrade)
- $1
- ;;
- terminate)
- $1
- ;;
- destroy)
- $1
- ;;
- *)
- FULLPATH=/etc/init.d/$PS
- echo "Usage: $FULLPATH {start|stop|restart|force-reload|status|configtest|quietupgrade|terminate|destroy}"
- echo " The 'destroy' command should only be used as a last resort."
- exit 1
- ;;
- esac
-
- exit 0
|