Skip to content

Instantly share code, notes, and snippets.

@brcooley
Forked from suda/gunicorn
Last active January 5, 2016 00:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brcooley/6732252 to your computer and use it in GitHub Desktop.
Save brcooley/6732252 to your computer and use it in GitHub Desktop.
init.d file for gunicorn (not gunicorn_django)
#!/bin/bash
### BEGIN INIT INFO
# Provides: gunicorn
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the gunicorn server
# Description: starts gunicorn using start-stop-daemon
### END INIT INFO
# Gunicorn init.d script for debian/ubuntu
# Written by Wojtek 'suda' Siudzinski <admin@suda.pl>
# Gist: https://gist.github.com/748450
#
# Sample config (/etc/default/gunicorn):
#
# SERVERS=(
# 'server_name port project_path number_of_workers app_module'
# )
# RUN_AS='www-data'
#
# WARNING: user $RUN_AS must have +w on /var/run/gunicorn
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/gunicorn
NAME=gunicorn
DESC=gunicorn
SERVER="$2"
test -x $DAEMON || exit 0
if [ -f /etc/default/gunicorn ] ; then
. /etc/default/gunicorn
fi
if [ ! -d /var/run/gunicorn ]; then
mkdir /var/run/gunicorn
fi
start () {
for i in "${SERVERS[@]}"
do
:
set -- "$i"
IFS=" "; declare -a data=($*)
if [ "$SERVER" ]; then
if [ "$SERVER" != ${data[0]} ]; then
continue
fi
fi
echo "Spawning ${data[0]}"
start-stop-daemon --start --pidfile /var/run/gunicorn/${data[0]}.pid -c $RUN_AS -d ${data[2]} --exec $DAEMON -- -b 127.0.0.1:${data[1]} -w ${data[3]} -D -p /var/run/gunicorn/${data[0]}.pid ${data[4]}
done
return
}
stop () {
for i in "${SERVERS[@]}"
do
:
set -- "$i"
IFS=" "; declare -a data=($*)
if [ "$SERVER" ]; then
if [ "$SERVER" != ${data[0]} ]; then
continue
fi
fi
if [ -f /var/run/gunicorn/${data[0]}.pid ]; then
echo "Killing ${data[0]}"
kill $(cat /var/run/gunicorn/${data[0]}.pid)
fi
done
}
case "$1" in
start)
echo "Starting $DESC"
start
;;
stop)
echo "Stopping $DESC"
stop
;;
restart)
echo "Restarting $DESC"
stop
sleep 1
start
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart} [particular_server_to_restart]" >&2
exit 1
;;
esac
exit 0
@holms
Copy link

holms commented Jan 5, 2016

(project)root@:/var/www/project# service gunicorn start
!!!
!!! WARNING: This command is deprecated.
!!!
!!! You should now run your application with the WSGI interface
!!! installed with your project. Ex.:
!!!
!!! gunicorn myproject.wsgi:application
!!!
!!! See https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/gunicorn/
!!! for more info.
!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment