Linux程序启停脚本

Linux环境下,程序通用启动脚本

#!/bin/sh

# should config first
prog="program name"   # like 'kafka'
exec_path="/home/hadoop/local/kafka"   # like /home/hadoop/local/kafka
exec="execute command"  # execute command
pidfile="/home/hadoop/local/pids/${prog}.pid"   # pid file
log_timestamp_file="/home/hadoop/logs/kafka/$prog"   # log timestamp

success() {
    echo "start $prog sucess!"
}

failure() {
    echo "start $prog fail!"
}

start() {
    [ -x $exec ] || exit 5

    if ! [ -f $pidfile ]; then
        printf "Starting $prog... \n"
        echo "$(date)" >> $log_timestamp_file
        cd $exec_path
        `$exec`
        retval=$?
        pid=$!
        cd -
        echo $pid > $pidfile
        if [ $retval -eq 0 ]; then
            success
        else
            failure
            echo
        fi
        exit $retval
    else
        failure
        echo
        printf "$pidfile still exists...\n"
        exit 7
    fi
}

stop() {
    echo -n $"Stopping $prog... \n"
    if [ -f $pidfile ]; then
        kill $(cat $pidfile) && rm -f $pidfile
        retval=$?
        echo
        return $retval
    fi
    return 0
}

restart() {
    stop
    start
}

case "$1" in
    start)
        $1
        ;;
    stop)
        $1
        ;;
    restart)
        $1
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 2
esac

exit $?


你可能感兴趣的:(linux,shell,启停脚本)