加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

squid源码安装的服务启动脚本

发布时间:2016-10-01 18:18:24 所属栏目:Linux 来源:站长网
导读:#!/bin/bash # squid This shell script takes care of starting and stopping # Squid Internet Object Cache # # chkconfig: - 90 25 # description: Squid - Internet Object Cache. Internet object caching is # a way to store requested Internet
#!/bin/bash     
# squid     This shell script takes care of starting and stopping     
#       Squid Internet Object Cache     
#     
# chkconfig: - 90 25     
# description: Squid - Internet Object Cache. Internet object caching is 
#   a way to store requested Internet objects (i.e., data available 
#   via the HTTP, FTP, and gopher protocols) on a system closer to the 
#   requesting site than to the source. Web browsers can then use the 
#   local Squid cache as a proxy HTTP server, reducing access time as 
#   well as bandwidth consumption.     
# pidfile: /var/run/squid.pid     
# config: /etc/squid/squid.conf     
        
PATH=/usr/bin:/sbin:/bin:/usr/sbin     
export PATH     
        
# Source function library.     
. /etc/rc.d/init.d/functions     
        
# Source networking configuration.     
. /etc/sysconfig/network     
        
# don't raise an error if the config file is incomplete     
# set defaults instead:     
SQUID_OPTS=${SQUID_OPTS:-"-D"}     
SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}     
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}     
        
# determine the name of the squid binary     
[ -f /usr/local/squid/sbin/squid ] && SQUID=/usr/local/squid/sbin/squid && SQUID_id=squid    
        
prog="$SQUID"
        
# determine which one is the cache_swap directory     
CACHE_SWAP=`sed -e 's/#.*//g' /usr/local/squid/etc/squid.conf | 
    grep cache_dir |  awk '{ print $3 }'`     
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/usr/local/squid/var/cache     
        
RETVAL=0    
        
start() {     
        #check if the squid conf file is present     
        if [ ! -f /usr/local/squid/etc/squid.conf ]; then     
            echo "Configuration file /usr/local/squid/etc/squid.conf missing" 1>&2     
            exit 6     
        fi     
        . /etc/sysconfig/squid     
        
        # don't raise an error if the config file is incomplete.     
        # set defaults instead:     
        SQUID_OPTS=${SQUID_OPTS:-"-D"}     
        SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}     
        SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}     
        if [ -z "$SQUID" ]; then     
                echo "Insufficient privilege" 1>&2     
                exit 4     
        fi     
        for adir in $CACHE_SWAP; do 
        if [ ! -d $adir/00 ]; then     
         echo -n "init_cache_dir $adir... " 
         $SQUID -z -F -D >> /usr/local/squid/var/logs/squid.out 2>&1     
    fi     
    done     
    echo -n $"Starting $prog: " 
    $SQUID $SQUID_OPTS >> /usr/local/squid/var/logs/squid.out 2>&1     
    RETVAL=$?     
    if [ $RETVAL -eq 0 ]; then     
       timeout=0;     
       while : ; do 
          [ ! -f /usr/local/squid/var/run/squid.pid ] || break 
      if [ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]; then     
         RETVAL=1    
         break 
      fi     
      sleep 1 && echo -n "." 
      timeout=$((timeout+1))     
       done     
    fi     
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID_uid     
    [ $RETVAL -eq 0 ] && echo_success     
    [ $RETVAL -ne 0 ] && echo_failure     
    echo     
    return $RETVAL     
}     
        
stop() {     
    . /etc/sysconfig/squid     
    # don't raise an error if the config file is incomplete.     
    # set defaults instead:     
    SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}     
    echo -n  $"Stopping $prog: " 
    $SQUID -k check >> /usr/local/squid/var/logs/squid.out 2>&1     
    RETVAL=$?     
    if [ $RETVAL -eq 0 ] ; then     
        $SQUID -k shutdown &     
        rm -f /var/lock/subsys/$SQUID_id     
    timeout=0    
    while : ; do 
        [ -f /usr/local/squid/var/run/squid.pid ] || break 
        if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then     
            echo     
            return 1     
        fi     
        sleep 2 && echo -n "." 
        timeout=$((timeout+2))     
        done     
    echo_success     
    echo     
    else 
        echo_failure     
    if [ ! -e /var/lock/subsys/$SQUID_id ]; then     
        RETVAL=0    
    fi     
    echo     
    fi     
    return $RETVAL     
}     
        
reload() {     
    . /etc/sysconfig/squid     
    # don't raise an error if the config file is incomplete.     
    # set defaults instead:     
    SQUID_OPTS=${SQUID_OPTS:-"-D"}     
        
    $SQUID $SQUID_OPTS -k reconfigure     
}     
        
restart() {     
    stop     
    start     
}     
        
condrestart() {     
    [ -e /var/lock/subsys/squid_id ] && restart || :     
}     
        
rhstatus() {     
    status $SQUID_id && $SQUID -k check     
}     
        
probe() {     
    return 0     
}     
        
case "$1" in 
start)     
    start     
    ;;     
        
stop)     
    stop     
    ;;     
        
reload)     
    reload     
    ;;     
        
restart)     
    restart     
    ;;     
        
condrestart)     
    condrestart     
    ;;     
        
status)     
    rhstatus     
    ;;     
        
probe)     
    exit 0     
    ;;     
        
*)     
    echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}" 
    exit 2     
esac     
        
exit $?

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读