Cetus开机自启动

本文介绍了一个名为Cetus的服务启动脚本,该脚本使用bash编写,详细配置了服务的启动、停止、重启及状态检查等操作。通过读取配置文件proxy.conf中的设置来定制服务的行为。
#!/bin/bash
# chkconfig: - 30 21
# description: Cetus service.
# Source Function Library
. /etc/init.d/functions

STARTTIMEOUT=12
STOPTIMEOUT=60

# Cetus Settings
CETUS_HOME=/usr/local/cetus
CETUS_CONF=${CETUS_HOME}/conf/proxy.conf
CETUS_SBIN=${CETUS_HOME}/bin/cetus
CETUS_PID=${CETUS_HOME}/cetus6001.pid
CETUS_LOG=${CETUS_HOME}/cetus_6001.log
CETUS_EXEC=${CETUS_HOME}/libexec/cetus
CETUS_DAEMON="0"
CETUS_PROG="cetus"

cetus_pid=`sed '/^pid-file=/!d;s/.*=//' ${CETUS_CONF}`     
if [ "$cetus_pid" != "" ];then
        CETUS_PID=$cetus_pid
fi

cetus_daemon=`sed '/^daemon=/!d;s/.*=//' ${CETUS_CONF}`
if [ "$cetus_daemon" != "" ];then
        CETUS_DAEMON=$cetus_daemon
fi

cetus_log=`sed '/^log-file=/!d;s/.*=//' ${CETUS_CONF}`
if [ "$cetus_log" != "" ];then
        CETUS_LOG=$cetus_log
fi

start() {
    [ -x $CETUS_EXEC ] || exit 5
    if [ -f "$CETUS_PID" ];then
        CETUSPID=$(cat $CETUS_PID)
        if [ -n "$CETUSPID" ];then
            /bin/kill -0 "$CETUSPID" >/dev/null 2>&1
            RETVAL=$?
            if [ $RETVAL -eq 0 ];then
                # already running
                action $"Starting $prog: " /bin/true
                return $RETVAL
            fi
        fi
    fi
    if [ "${CETUS_DAEMON}" == "0" ];then
        ${CETUS_SBIN} --defaults-file=${CETUS_CONF} >/dev/null 2>&1 &
    else
        ${CETUS_SBIN} --defaults-file=${CETUS_CONF} >/dev/null 2>&1
    fi
    TIMEOUT="$STARTTIMEOUT"
    while [ $TIMEOUT -gt 0 ]; do
        CETUSPID=$(cat $CETUS_PID)
        /bin/kill -0 "$CETUSPID" >/dev/null 2>&1
        RETVAL=$?
        if [ $RETVAL -eq 0 ];then
            break
        fi
        sleep 0.5
        let TIMEOUT=${TIMEOUT}-1
    done
    if [ $TIMEOUT -eq 0 ];then
        echo "Timeout error occurred trying to start Cetus"
    fi
    if [ $RETVAL -eq 0 ];then
        action $"Starting $prog: " /bin/true
    else
        echo "please see ${CETUS_LOG}"
        action $"Starting $prog: " /bin/false
    fi
    return $RETVAL
}

stop() {
    if [ ! -f "$CETUS_PID" ];then
        # not running
        action $"Stopping $prog: " /bin/true
        return 0
    fi
    CETUSPID=$(cat $CETUS_PID)
    if [ -n "$CETUSPID" ];then
        /bin/kill "$CETUSPID" >/dev/null 2>&1
        RETVAL=$?
        if [ $RETVAL -eq 0 ] ;then
            TIMEOUT="$STOPTIMEOUT"
            while [ $TIMEOUT -gt 0 ]; do
                /bin/kill -0 "$CETUSPID" >/dev/null 2>&1 ||break
                sleep 0.5
                let TIMEOUT=${TIMEOUT} -1
            done
            if [ $TIMEOUT -eq 0 ];then
                echo "Timeout error occurred trying to stop Cetus."
                RETVAL=1
                action $"Stopping $prog: " /bin/false
            else
                action $"Stopping $prog: " /bin/true
            fi
        else
            echo "kill cetus(pid=$CETUSPID) failed, cetus may not be running"    
            action $"Stopping $prog: " /bin/false
        fi
    else 
        echo "cetus's pidfile is null, $CETUS_PID"
        action $"Stopping $prog: " /bin/false
        RETVAL=4
    fi
    return $RETVAL
}

restart(){
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p "$CETUS_PID" $CETUS_PROG
        ;;
  restart)
        restart
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        RETVAL=1
esac

exit $RETVAL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值