OSDN Git Service

Port range check was implemented.
[ultramonkey-l7/ultramonkey-l7-v2.git] / init.d / l7vsd
1 #!/bin/sh
2 # Start/Stop script for l7vsd
3 #
4 # chkconfig: - 95 34
5 # description: Start and stop l7vsd
6 #              
7 # processname: l7vsd
8 #
9 # Author: Shinya TAKEBAYASHI
10 # Released: January 2008
11 # Licence: GNU General Public Licence
12
13 #L7VSD_OPTIONS=""               # run as non-blocking mode
14 L7VSD_OPTIONS="-b"              # run as blocking mode
15
16 PROG="l7vsd"
17 DAEMON="/usr/sbin/l7vsd"
18 SOCKFILE="/var/run/l7vs/l7vs"
19 PIDFILE="/var/run/l7vsd.pid"
20 LOCKFILE="/var/lock/subsys/l7vsd"
21
22 start() {
23     if [ -e $PIDFILE ]; then
24         PROCS=`ps ax | grep $DAEMON | grep -v grep | wc -l`
25         if [ $PROCS -ne 0 ]; then
26             echo "$PROG is running."
27             RETVAL=-1
28             return
29         fi
30         cleanup
31     fi
32
33     ulimit -n 65536
34     echo -n "Starting $PROG: " 
35     `$DAEMON $L7VSD_OPTIONS`
36     RETVAL=$?
37
38     if [ $RETVAL -ne 0 ]; then
39         echo "error occured."
40         echo "$PROG was not started."
41     else
42         echo "done."
43         pidof $PROG > $PIDFILE
44         touch $LOCKFILE
45     fi
46
47     return $RETVAL
48 }
49
50 stop() {
51     PID=`pidof l7vsd`
52     if [ -z $PID ]; then
53         echo "$PROG is not running."
54         RETVAL=-1
55         cleanup
56         return
57     fi
58
59     echo -n "Stopping $PROG: "
60     kill $PID
61     RETVAL=$?
62     
63     if [ $RETVAL -eq 0 ]; then
64         echo "done."
65         cleanup
66     fi
67
68     return $RETVAL
69 }
70
71 status() {
72     if [ ! -e $PIDFILE ]; then
73         echo "$PROG is not running."
74         RETVAL=-1
75     else
76         echo -n "$PROG running with pid: "
77         cat $PIDFILE
78         RETVAL=$?
79     fi
80     return $RETVAL
81 }
82
83 cleanup() {
84         rm -rf $PIDFILE
85         rm -rf $SOCKFILE
86         rm -rf $LOCKFILE
87 }
88
89
90 # Prefer for Running script
91 if [ ! -x $DAEMON ]; then
92     echo "$DAEMON does not exist!"
93     exit -1
94 fi
95
96 # Privilege check
97
98 if [ `id -u` -ne '0' ]; then
99     echo "This script must run as root."
100     exit -1
101 fi
102
103 case "$1" in
104     start)
105         start
106         ;;
107     
108     stop)
109         stop
110         ;;
111     
112     status)
113         status
114         ;;
115
116     restart)
117         stop
118         sleep 1
119         start
120         ;;
121
122     condrestart)
123         stop
124         sleep 1
125         start
126         ;;
127     
128     *)
129         echo "Usage: $0 {start|stop|restart|condrestart|status}"
130         RETVAL=-1
131
132 esac
133
134 exit $RETVAL