如何使用bash脚本实现监督

时间:2013-01-15 15:39:18

标签: bash

supervise是daemontools中强大的工具之一,我想知道如何使用bash脚本实现它。有人有建议吗?我需要帮助!

1 个答案:

答案 0 :(得分:0)

我稍稍改变了the code provided by mr.spuratic

echo "true" > $STATUSFILE

case "$1" in

    start) 
        echo "Starting $DAEMON_NAME"
        (
            trap 'logger -t italoService "INFO: $DAEMON_NAME shutting down..."; exit 1' 1 2 3 15
            logger -t italoService "INFO: Starting $DAEMON_NAME"
            while : ; do
                #do_start
                read STATUS <$STATUSFILE
                if [ "$STATUS" = "false" ] ; then
                     logger -t italoService "INFO: $DAEMON_NAME stopped by user"
                     break
                fi
                $DAEMON $DAEMON_OPTS &
                pid=$!
                echo $pid > $PIDFILE
                logger -t italoService "WARNING: pid File: $pid"
                wait $pid
                rc=$?
                logger -t italoService "WARNING: $DAEMON_NAME exited, rc=$rc"
                sleep 1  # adjust as required
                read STATUS <$STATUSFILE
                if [ "$STATUS" = "true" ] ; then
                     logger -t italoService "WARNING: Restarting $DAEMON_NAME"
                fi
            done
        ) &
        echo $! > $PIDFILE
    ;;        

    stop)
        echo "Stopping $DAEMON_NAME"
        echo "false" > $STATUSFILE
        [ -f $PIDFILE ] && kill $(<$PIDFILE)
        [ -f $PIDFILE ] && kill $(<$PIDFILE)
        ;;
相关问题