lstu.init 4.57 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
#!/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
29 30 31 32 33
    if [ -z $USER ]
    then
        echo "USER variable is empty, please fill it in /etc/default/lstu"
        exit 0
    fi
Luc Didry's avatar
Luc Didry committed
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
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
57
    su $USER -c "carton exec hypnotoad $DAEMON >/dev/null 2>&1"
Luc Didry's avatar
Luc Didry committed
58 59 60 61 62 63 64 65 66 67 68 69
    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
70
    su $USER -c "carton exec hypnotoad -s $DAEMON >/dev/null 2>&1"
Luc Didry's avatar
Luc Didry committed
71 72 73 74 75 76 77 78 79 80 81 82
    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
83
            log_failure_msg "$NAME is NOT running but PID file exists"
Luc Didry's avatar
Luc Didry committed
84 85
        fi
    else
86
        log_failure_msg "$NAME is NOT running"
Luc Didry's avatar
Luc Didry committed
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
    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)
109
                         log_failure_msg "failed"
Luc Didry's avatar
Luc Didry committed
110 111 112 113 114 115 116 117 118 119 120 121
                         log_end_msg 1
                         ;;
                 esac
             fi
        else
            do_start
            case "$?" in
                0|1)
                    log_progress_msg "done"
                    log_end_msg 0
                    ;;
                2)
122
                    log_failure_msg "failed"
Luc Didry's avatar
Luc Didry committed
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
                    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
                        ;;
                    *)
142
                        log_failure_msg "failed"
Luc Didry's avatar
Luc Didry committed
143 144 145 146
                        log_end_msg 1
                        ;;
                esac
            else
147
                log_failure_msg "$NAME is NOT running. Unable to stop"
Luc Didry's avatar
Luc Didry committed
148 149 150
                log_end_msg 1
            fi
        else
151
            log_failure_msg "$NAME is NOT running. Unable to stop"
Luc Didry's avatar
Luc Didry committed
152 153 154 155 156 157 158 159 160 161 162
            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
163
        sleep 1
Luc Didry's avatar
Luc Didry committed
164 165 166 167 168 169
        case "$?" in
            0|1)
                log_progress_msg "done"
                log_end_msg 0
                ;;
            2)
170
                log_failure_msg "failed"
Luc Didry's avatar
Luc Didry committed
171 172 173 174 175 176 177
                log_end_msg 1
                ;;
        esac
        ;;
    restart)
        log_daemon_msg "Restarting $NAME"
        do_stop
178
        sleep 6
Luc Didry's avatar
Luc Didry committed
179 180 181 182 183 184 185
        do_start
        case "$?" in
            0|1)
                log_progress_msg "done"
                log_end_msg 0
                ;;
            2)
186
                log_failure_msg "failed";
Luc Didry's avatar
Luc Didry committed
187 188 189 190 191 192 193 194 195 196 197
                log_end_msg 1
                ;;
        esac
        ;;
    *)
        echo "Usage: $0 {start|stop|status|reload|restart}" >&2
        exit 3
        ;;
esac

exit 0