1 #!/bin/bash
2 # chkconfig: - 90 25 #其中-的意思是所有运行级别
3 # config: /etc/squid.conf
4 # pidfile: /usr/local/squid/var/run/squid.pid
5 # Description: Squid - Internet Object Cache
6
7 PID="/usr/local/squid/var/run/squid.pid" #程序运行才会有pid文件,反之则无
8 CONF="/etc/squid.conf"
9 CMD="/usr/local/squid/sbin/squid"
10
11 case "$1" in
12 start)
13 netstat -utpln | grep squid $> /dev/null
14 if [ $? -eq 0 ]
15 then
16 echo "Squid is running"
17 else
18 $CMD
19 fi
20 ;;
21 stop)
22 $CMD -k kill $> /dev/null #调用squid命令停止服务
23 rm -rf $PID $> /dev/null #删除pid文件
24 ;;
25 status)
26 [ -f $PID ] &> /dev/null #检测pid文件是否存在
27 if [ $? -eq 0 ] #假如文件存在则0等于0,执行netstat命令展示端口
28 then
29 netstat -utpln | grep squid
30 else
31 echo "Squdi is not running"
32 fi
33 ;;
34 restart)
35 $0 stop $> /dev/null #注意:$0 stop的意思是调用之前定义的stop
36 echo "正在关闭Squid..."
37 $0 start $> /dev/null
38 echo "正在启动Squid..."
39 ;;
40 reload)
41 $CMD -k reconfigure #重新加载,但不中断服务,配置更改后,建议用这种方式加载
42 ;;
43 check)
44 $CMD -k parse #检查配置文件语法是否错误
45 ;;
46 *)
47 echo "$0的用法:{start | stop | restart | reload | check | status}" # $0代表脚本名字/etc/squid.conf的用法
48 ;;
49 esac