lstu.init 4.39 KB
Newer Older
Luc Didry's avatar
Luc Didry committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
#!/bin/sh
# vim: set ts=4 sw=4 sts=4 tw=0:
# vim: set expandtab:

### BEGIN INIT INFO
# Provides:          lstu
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts lstu with hypnotoad
# Description:       starts lstu with hypnotoad
### END INIT INFO


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=script/lstu
NAME=lstu
DESC=lstu

if [ -f "/etc/default/lstu" ]
then
    . /etc/default/lstu
    if [ -z $LDIR ]
    then
        echo "LDIR variable is empty, please fill it in /etc/default/lstu"
        exit 0
    fi
else
    echo "Missing /etc/default/lstu file"
    exit 0
fi

if [ ! -f "$LDIR$DAEMON" ]
then
    echo "Missing $LDIR$DAEMON file"
    exit 0
fi

set -e

. /lib/lsb/init-functions

do_start()
{
    # Return
    # 0 if daemon has been started
    # 1 if daemon was already running
    # 2 if daemon could not be started

    cd $LDIR
    carton exec hypnotoad $DAEMON >/dev/null 2>&1
    return "$?"
}

do_stop()
{
    # Return
    # 0 if daemon has been stopped
    # 1 if daemon was already stopped
    # 2 if daemon could not be stopped
    # other if a failure occurred

    cd $LDIR
    carton exec hypnotoad -s $DAEMON >/dev/null 2>&1
    return "$?"
}

do_status()
{
    cd $LDIR
    if [ -f "script/hypnotoad.pid" ]
    then
        pgrep -lf $DAEMON >/dev/null 2>&1
        if [ "$?" = "0" ]; then
            log_progress_msg "$NAME is running"
        else
            log_progress_msg "$NAME is NOT running"
        fi
    else
        log_progress_msg "$NAME is NOT running"
    fi
}

case "$1" in
    start)
        log_daemon_msg "Starting $NAME"
        cd $LDIR
        if [ -f "script/hypnotoad.pid" ]
        then
             pgrep -lf $DAEMON >/dev/null 2>&1
             if [ "$?" = "0" ]
             then
                 log_progress_msg "$NAME is already running. Unable to start."
                 log_end_msg 1;
             else
                 do_start
                 case "$?" in
                     0|1)
                         log_progress_msg "done"
                         log_end_msg 0
                         ;;
                     2)
                         log_progress_msg "failed"
                         log_end_msg 1
                         ;;
                 esac
             fi
        else
            do_start
            case "$?" in
                0|1)
                    log_progress_msg "done"
                    log_end_msg 0
                    ;;
                2)
                    log_progress_msg "failed"
                    log_end_msg 1
                    ;;
            esac
        fi
        ;;
    stop)
        log_daemon_msg "Stopping $NAME"
        cd $LDIR
        if [ -f "script/hypnotoad.pid" ]
        then
            pgrep -lf $DAEMON >/dev/null 2>&1
            if [ "$?" = "0" ]; then
                do_stop
                case "$?" in
                    0|1)
                        log_progress_msg "done"
                        log_end_msg 0
                        ;;
                    *)
                        log_progress_msg "failed"
                        log_end_msg 1
                        ;;
                esac
            else
                log_progress_msg "$NAME is NOT running. Unable to stop"
                log_end_msg 1
            fi
        else
            log_progress_msg "$NAME is NOT running. Unable to stop"
            log_end_msg 1
        fi
        ;;
    status)
        log_daemon_msg "Checking $NAME status"
        do_status
        log_end_msg 0
        ;;
    reload)
        log_daemon_msg "Reloading $NAME"
        do_start
        case "$?" in
            0|1)
                log_progress_msg "done"
                log_end_msg 0
                ;;
            2)
                log_progress_msg "failed"
                log_end_msg 1
                ;;
        esac
        ;;
    restart)
        log_daemon_msg "Restarting $NAME"
        do_stop
        sleep 1
        do_start
        case "$?" in
            0|1)
                log_progress_msg "done"
                log_end_msg 0
                ;;
            2)
                log_progress_msg "failed";
                log_end_msg 1
                ;;
        esac
        ;;
    *)
        echo "Usage: $0 {start|stop|status|reload|restart}" >&2
        exit 3
        ;;
esac

exit 0