| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #! /bin/sh
- ### BEGIN INIT INFO
- # Provides: FastCGI servers for Django
- # Required-Start: networking
- # Required-Stop: networking
- # Default-Start: 2 3 4 5
- # Default-Stop: S 0 1 6
- # Short-Description: Start FastCGI servers with Django.
- # Description: Django, in order to operate with FastCGI, must be started
- # in a very specific way with manage.py. This must be done
- # for each DJango web server that has to run.
- ### END INIT INFO
- #
- # Author: Guillermo Fernandez Castellanos
- # <guillermo.fernandez.castellanos AT gmail.com>.
- #
- # Version: @(#)fastcgi 0.1 11-Jan-2007 guillermo.fernandez.castellanos AT gmail.com
- #
- #### SERVER SPECIFIC CONFIGURATION
- DJANGO_SITES="backlog"
- SITES_PATH=/var/www
- RUNFILES_PATH=$SITES_PATH/run
- HOST=127.0.0.1
- PORT_START=8008
- RUN_AS=sig
- FCGI_METHOD=threaded
- #### DO NOT CHANGE ANYTHING AFTER THIS LINE!
- set -e
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- DESC="FastCGI servers"
- NAME=$0
- SCRIPTNAME=/etc/init.d/$NAME
- #
- # Function that starts the daemon/service.
- #
- d_start()
- {
- # Starting all Django FastCGI processes
- PORT=$PORT_START
- for SITE in $DJANGO_SITES
- do
- echo -n ", $SITE"
- if [ -f $RUNFILES_PATH/$SITE.pid ]; then
- echo -n " already running"
- else
- start-stop-daemon --start --quiet \
- --pidfile $RUNFILES_PATH/$SITE.pid \
- --chuid $RUN_AS --exec /usr/bin/env -- python \
- $SITES_PATH/$SITE/manage.py runfcgi \
- method=$FCGI_METHOD \
- host=$HOST port=$PORT pidfile=$RUNFILES_PATH/$SITE.pid
- chmod 400 $RUNFILES_PATH/$SITE.pid
- fi
- let "PORT = $PORT + 1"
- done
- }
- #
- # Function that stops the daemon/service.
- #
- d_stop() {
- # Killing all Django FastCGI processes running
- for SITE in $DJANGO_SITES
- do
- echo -n ", $SITE"
- start-stop-daemon --stop --quiet --pidfile $RUNFILES_PATH/$SITE.pid \
- || echo -n " not running"
- if [ -f $RUNFILES_PATH/$SITE.pid ]; then
- rm -f $RUNFILES_PATH/$SITE.pid
- fi
- done
- }
- ACTION="$1"
- case "$ACTION" in
- start)
- echo -n "Starting $DESC: $NAME"
- d_start
- echo "."
- ;;
- stop)
- echo -n "Stopping $DESC: $NAME"
- d_stop
- echo "."
- ;;
- restart|force-reload)
- echo -n "Restarting $DESC: $NAME"
- d_stop
- sleep 1
- d_start
- echo "."
- ;;
- *)
- echo "Usage: $NAME {start|stop|restart|force-reload}" >&2
- exit 3
- ;;
- esac
- exit 0
|