LibreCat/LibreCat

View on GitHub
etc/librecat.initd

Summary

Maintainability
Test Coverage
#!/bin/sh
#
# chkconfig: 345 99 01
# description: Librecat application
# pidfile: /var/run/plackup.librecat.pid
#

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

[ "$NETWORKING" = "no" ] && exit 0

SCRIPT="$(basename $0)"

PID=/var/run/plackup.librecat.pid
CARTON=/home/vagrant/.plenv/shims/carton
SERVER_PORT=5000
SERVER_WORKERS=15
SERVER_USER="vagrant"
SERVER_GROUP="vagrant"
DANCER_TMP="/tmp"
DANCER_DIR="/home/vagrant/LibreCat"
DANCER_APP="$DANCER_DIR/bin/app.pl"
# If the LibreCat/config.yml is in a layers directory, use this line:
# export LIBRECAT_LAYERS="/opt/librecat-ugent"
PLACK_ENV="deployment"
ACCESS_LOG="/var/log/librecat/access.log"
ERROR_LOG="/var/log/librecat/error.log"

starman_args="--pid $PID --workers $SERVER_WORKERS --user $SERVER_USER --group $SERVER_GROUP --error-log $ERROR_LOG --max-requests 20"
plackup_args="-E $PLACK_ENV -p $SERVER_PORT --access-log $ACCESS_LOG -s Starman $starman_args -D"

lock_file=/var/lock/subsys/plackup.librecat

do_start()
{
        if [ ! -f "$lock_file" ] ; then
                cd $DANCER_DIR
                echo -n $"Starting $webapp: "
                TMPDIR="${DANCER_TMP}" DANCER_CONFDIR="${LIBRECAT_LAYERS}" $CARTON exec plackup $plackup_args -a $DANCER_APP
                RETVAL=$?
                if [ $RETVAL -eq 0 ]; then
                    touch $lock_file
                    echo_success
                else
                    echo_failure
                fi
                echo
        else
                echo "$SCRIPT is locked."
                RETVAL=1
        fi
}

do_stop()
{
        echo -n $"Stopping $SCRIPT: "
        if [ -f $PID ]; then
          kill `cat $PID` > /dev/null 2>&1
          RETVAL=$?
          if [ $RETVAL -eq 0 ]; then
            rm -f $lock_file
            echo_success
          else
            echo_failure
          fi
        else
          echo_failure
        fi
        echo
}

do_status()
{
        kill -0 `cat $PID` > /dev/null 2>&1
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
          echo "$SCRIPT is running"
        else
          echo "$SCRIPT is not running"
        fi
}

case "$1" in
        start)
                do_start
                ;;
        stop)
                do_stop
                ;;
        restart)
                do_stop
                do_start
                ;;
        status)
                do_status
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|status}"
                RETVAL=1
esac

exit $RETVAL