最新消息:

squid启动脚本

Linux admin 3008浏览 0评论
#!/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=/usr/local/squid/var/logs/squid.pid
#config=/etc/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}
  
squid=/usr/local/squid/sbin/squid
squid_config=/etc/squid.conf
squid_pid=/usr/local/squid/var/logs/squid.pid
  
# determine the name of the squid binary
[ -f $squid ] && prog="squid"
  
# determine which one is the cache_swap directory
CACHE_SWAP=`sed -e 's/#.*//g' $squid_config | grep cache_dir |  awk '{ print $3 }'`
  
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/cache
  
RETVAL=0
  
start() {
    if [ ! -f $squid_config ]; then
        echo "Configuration file $squid_config missing" 1>&2
            exit 6
        fi
    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 $squid_config >> /usr/local/squid/var/logs/cache.log
        fi
    done
    echo -n $"Starting $prog: "
    $squid $SQUID_OPTS -s -f $squid_config >> /usr/local/squid/var/logs/cache.log 2>&1
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
           timeout=0;
           while : ; do
          [ ! -f $squid_pid ] || break
          if [ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]; then
             RETVAL=1
             break
          fi
          sleep 1  
          timeout=$((timeout+1))
           done
    fi
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
    [ $RETVAL -eq 0 ] && echo_success
    [ $RETVAL -ne 0 ] && echo_failure
    echo
    return $RETVAL
}
  
stop() {
    echo -n  $"Stopping $prog: "
    $squid -k check -f $squid_config >> /usr/local/squid/var/logs/cache.log 2>&1
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        $squid -k shutdown -f $squid_config &
        rm -f /var/lock/subsys/$prog
        timeout=0
        while : ; do
            [ -f $squid_pid ] || break
            if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
                echo
                return 1
            fi
            sleep 2  
            timeout=$((timeout+2))
        done
        echo_success
        echo
    else
        echo_failure
        if [ ! -e /var/lock/subsys/$prog ]; then
            RETVAL=0
        fi
        echo
    fi
    return $RETVAL
}
  
reload() {
    $squid -k reconfigure -f $squid_config
    echo -n  $"reload_config $prog: "
    echo_success
    echo
}
  
restart() {
    stop
    sleep 5
    start
}
  
condrestart() {
    [ -e /var/lock/subsys/squid ] && restart || :
}
  
rhstatus() {
    status $squid && $squid -k check -f $squid_config
}
  
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 $?

注意squid相关文件的实际路径,不要原本照搬!

Tags – , ,

转载请注明:爱开源 » squid启动脚本

您必须 登录 才能发表评论!