A sample init script

A sample init script
i am using this to “service” manage zeppelin which is installed to
“/opt/zeppelin-0.7.0-bin-all

and the start command is
/opt/zeppelin-0.7.0-bin-all/bin/zeppelin-daemon.sh start

change to suit your situation.

script below.

#!/bin/sh

# Available run levels:     2 3 4 5
# Stopped run levels:      0 1 6
dir=/opt/zeppelin-0.7.0-bin-all
cmd=/opt/zeppelin-0.7.0-bin-all/bin/zeppelin-daemon.sh start
user=“”
name=`basename $0`
pid_file=/var/run/$name.pid
stdout_log=/var/log/$name.log
stderr_log=/var/log/$name.err
get_pid() {
    cat $pid_file
}
is_running() {
    [ -f $pid_file ] && ps `get_pid` > /dev/null 2>&1
}
case $1 in
    start)
    if is_running; then
        echo Already started
    else
        echo Starting $name
        cd $dir
        if [ -z $user ]; then
            sudo $cmd >> $stdout_log 2>> $stderr_log &
        else
            sudo -u $user $cmd >> $stdout_log 2>> $stderr_log &
        fi
        echo $! > $pid_file
        if ! is_running; then
            echo Unable to start, see $stdout_log and $stderr_log
            exit 1
        fi
    fi
    ;;
    stop)
    if is_running; then
        echo -n Stopping $name..
        kill `get_pid`
        for i in {1..10}
        do
            if ! is_running; then
                break
            fi
            echo -n .
            sleep 1
        done
        echo
        if is_running; then
            echo Not stopped; may still be shutting down or shutdown may have failed
            exit 1
        else
            echo Stopped
            if [ -f $pid_file ]; then
                rm $pid_file
            fi
        fi
    else
        echo Not running
fi
    ;;
    restart)
    $0 stop
    if is_running; then
        echo Unable to stop, will not attempt to start
        exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
        echo Running
    else
        echo Stopped
        exit 1
    fi
    ;;
    *)
    echo Usage: $0 {start|stop|restart|status}
    exit 1
    ;;
esac
exit 0

Leave a Reply

Your email address will not be published. Required fields are marked *