歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

squid源碼安裝的服務啟動腳本

#!/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 $?
Copyright © Linux教程網 All Rights Reserved