95 lines
1.9 KiB
Bash
95 lines
1.9 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Shefzilla Init script Adapted
|
|
## Nginx
|
|
## FactCGI
|
|
#
|
|
# chkconfig: - 85 15
|
|
#
|
|
|
|
# Source function library.
|
|
. /etc/rc.d/init.d/functions
|
|
|
|
function check ()
|
|
{
|
|
error=`echo -e "[\e[0;31mError\e[0m]"`
|
|
ok=`echo -e "[\e[0;32mOk\e[0m]"`
|
|
|
|
if [ $1 != 0 ];then
|
|
echo $2": "$error
|
|
else
|
|
echo $2": "$ok
|
|
fi
|
|
}
|
|
|
|
function validations() {
|
|
## Variables
|
|
INSTANCE=shelfzilla
|
|
BASE_PATH="/opt/shelfzilla"
|
|
PID_PATH=/var/run/shelfzilla
|
|
PID_FILE=${PID_PATH}/${INSTANCE}.pid
|
|
P_USER="shelfzilla"
|
|
LOG_PATH=/var/log/shefzilla
|
|
LOG_FILE=shelfzilla.log
|
|
FCGI_PORT=8080
|
|
FCGI_IP=127.0.0.1
|
|
MOD=shelfzilla.settings.configfile
|
|
SZ_CONFIG_FILE=/opt/shelfzilla.toml
|
|
|
|
## Folders
|
|
[ -d "${PID_PATH}" ] || mkdir -p "${PID_PATH}"
|
|
[ -d "${LOG_PATH}" ] || mkdir -p "${LOG_PATH}"
|
|
|
|
chown -R "${P_USER}:${P_USER}" $LOG_PATH
|
|
|
|
}
|
|
|
|
function status(){
|
|
if [ "$1" == "start" ];then
|
|
[ -z "`pidof nginx`" ] && service nginx start
|
|
[ -z "`pidof python2.7`" ] && gunicorn -b ${FCGI_IP}:${FCGI_PORT} -e DJANGO_SETTINGS_MODULE=${MOD} -e APP_CONFIGFILE=${SZ_CONFIG_FILE} --pythonpath=${BASE_PATH} shelfzilla.wsgi:application
|
|
check $? "Gunicorn"
|
|
|
|
elif [ "$1" == "stop" ];then
|
|
[ -z "`pidof nginx`" ] || service nginx stop
|
|
[ -z "`pidof python2.7`" ] || pkill python2.7
|
|
check $? "Gunicorn"
|
|
|
|
else
|
|
service nginx status
|
|
FCGI=`pidof python2.7`
|
|
if [ -z "${FCGI}" ];then
|
|
echo -n "Gunicorn Server is down"
|
|
echo ""
|
|
else
|
|
echo -n "Gunicorn Server is up (${FCGI})"
|
|
echo ""
|
|
fi
|
|
fi
|
|
|
|
}
|
|
|
|
function restart() {
|
|
status "stop"
|
|
status "start"
|
|
}
|
|
|
|
validations
|
|
case "$1" in
|
|
start)
|
|
status "start"
|
|
;;
|
|
stop)
|
|
status "stop"
|
|
;;
|
|
restart)
|
|
restart
|
|
;;
|
|
status)
|
|
status
|
|
;;
|
|
*)
|
|
echo $"Usage: $0 {start|stop|restart|status}"
|
|
exit 2
|
|
esac
|