squid.rc
上传用户:liugui
上传日期:2007-01-04
资源大小:822k
文件大小:2k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. #!/sbin/sh
  2. # Squid Internet Object Cache startup
  3. # AUTHOR: Markus Gyger
  4. # This is squid's startup file /sbin/init.d/squid or /etc/init.d/squid
  5. PATH=/opt/squid/bin:/usr/sbin:/usr/bin:/sbin:/bin
  6. export PATH
  7. config()
  8. {
  9.     # SGI IRIX 6.2
  10.     if [ -f /sbin/chkconfig ]
  11.     then if /sbin/chkconfig squid
  12.  then if [ -f /var/config/squid.options ]
  13.       then . /var/config/squid.options
  14.       fi
  15.       SQUID=1
  16.  else SQUID=0
  17.  fi
  18.     # Digital UNIX
  19.     elif [ -f /usr/sbin/rcmgr ]
  20.     then SQUID=`/usr/sbin/rcmgr get SQUID 0`
  21.  SQUID_OPTIONS=`/usr/sbin/rcmgr get SQUID_OPTIONS "-s"`
  22.  SQUID_RESPAWN=`/usr/sbin/rcmgr get SQUID_RESPAWN 1`
  23.     # HP-UX 10 / Linux
  24.     elif [ -f /etc/rc.config ]
  25.     then . /etc/rc.config
  26.     # SUN Solaris 2
  27.     else SQUID=1
  28.  SQUID_OPTIONS="-s"
  29.  SQUID_RESPAWN=1
  30.     fi
  31.     [ 1 = "${SQUID-}" ]
  32. }
  33. respawn()
  34. {
  35.     trap "" 1
  36.     fails=0
  37.     while [ $fails -le 5 ]
  38.     do  start=`date +%d%H%M%S`
  39. if "$@"
  40. then logger -t "$1" -p local4.notice 
  41.  "respawn[$$]: Exiting due to shutdown"
  42.      return 0
  43. fi
  44. stop=`date +%d%H%M%S`
  45. time=`expr $stop - $start`
  46. [ "$time" -gt 10 ] && fails=0
  47. fails=`expr $fails + 1`
  48.     done
  49.     logger -t "$1" -p local4.alert 
  50. "respawn[$$]: Exiting due to repeated, frequent failures"
  51.     return 1
  52. }
  53. case $* in
  54. start_msg)
  55.     echo "Start Squid Internet Object Cache"
  56.     ;;
  57. stop_msg)
  58.     echo "Stopping Squid Internet Object Cache"
  59.     ;;
  60. start)
  61.     config || exit 2  # Squid not enabled
  62.     if whence=`type squid 2>&1`
  63.     then trap "" 1
  64.  if [ 0 = "${SQUID_RESPAWN-}" ]
  65.  then         squid ${SQUID_OPTIONS-} &
  66.  else respawn squid ${SQUID_OPTIONS-} &
  67.  fi
  68.     else echo "ERROR: $whence" >&2
  69.  exit 1
  70.     fi
  71.     ;;
  72. stop)
  73.     config || exit 2  # Squid not enabled
  74.     squid ${SQUID_OPTIONS-} -k shutdown || exit 1
  75.     ;;
  76. reconf*|rotate|int*|debug|check|kill)
  77.     config
  78.     squid ${SQUID_OPTIONS-} -k "$1"
  79.     ;;
  80. *)
  81.     echo "usage: $0 {start|stop|reconfigure|rotate|interrupt|debug|check|kill}" >&2
  82.     echo "    start        start squid" >&2
  83.     echo "    stop         clean shutdown" >&2
  84.     echo "    reconfigure  reread configuration files" >&2
  85.     echo "    rotate       rotate log files" >&2
  86.     echo "    interrupt    quick clean shutdown " >&2
  87.     echo "    debug        toggle debug logging" >&2
  88.     echo "    check        check for running squid" >&2
  89.     echo "    kill         terminate squid by brute force" >&2
  90.     exit 1
  91.     ;;
  92. esac
  93. [ $? -eq 0 ]  # only 0 and 1 exit values allowed
  94. exit