improve stunnel init.d script
[puppet_stunnel.git] / files / CentOS / stunnel.init
1 #!/bin/bash
2 #
3 # Script to run stunnel in daemon mode at boot time.
4 #
5 # Check http://www.gaztronics.net/ for the
6 # most up-to-date version of this script.
7 #
8 # This script is realeased under the terms of the GPL.
9 # You can source a copy at:
10 # http://www.fsf.org/copyleft/copyleft.html
11 #
12 # Please feel free to modify the script to suite your own needs.
13 # I always welcome email feedback with suggestions for improvements.
14 # Please do not email for general support. I do not have time to answer
15 # personal help requests.
16
17 # Author: Gary Myers MIIE MBCS
18 # email: http://www.gaztronics.net/webform/
19 # Revision 1.0  -  4th March 2005
20
21 #====================================================================
22 # Run level information:
23 #
24 # chkconfig: 2345 99 99
25 # description: Secure Tunnel
26 # processname: stunnel
27 #
28 # Run "/sbin/chkconfig --add stunnel" to add the Run levels.
29 # This will setup the symlinks and set the process to run at boot.
30 #====================================================================
31
32 #====================================================================
33 # Paths and variables and system checks.
34
35 # Source function library (It's a Red Hat thing!)
36 . /etc/rc.d/init.d/functions
37
38 # Check that networking is up.
39 #
40 [ ${NETWORKING} ="yes" ] || exit 0
41
42 # Path to the executable.
43 #
44 SEXE=/usr/sbin/stunnel
45
46 # Path to the configuration file.
47 #
48 CONF=/etc/stunnel/stunnel.conf
49
50 # Check the configuration file exists.
51 #
52 if [ ! -f $CONF ] ; then
53   echo "The configuration file cannot be found!"
54 exit 0
55 fi
56
57 CHROOT=`grep '^chroot' /etc/stunnel/stunnel.conf | head -n 1 | sed 's/ //g' | awk -F= '{ print $2 }'`
58 PIDFILE=`grep '^pid' /etc/stunnel/stunnel.conf | head -n 1 | sed 's/ //g' | awk -F= '{ print $2 }'` 
59 if [ -n "$CHROOT" ]; then
60     PIDFILE=$CHROOT/$PIDFILE
61 fi
62
63 # Path to the lock file.
64 #
65 LOCK_FILE=/var/lock/subsys/stunnel
66
67 #====================================================================
68
69 #====================================================================
70 # Run controls:
71
72 prog=$"stunnel"
73
74 RETVAL=0
75
76 # Start stunnel as daemon.
77 #
78 start() {
79   if [ -f $LOCK_FILE ]; then
80     echo "stunnel is already running!"
81     exit 0
82   else
83     echo -n $"Starting $prog: "
84     $SEXE $CONF
85   fi
86
87   RETVAL=$?
88   [ $RETVAL -eq 0 ] && success 
89   echo
90   [ $RETVAL -eq 0 ] && touch $LOCK_FILE
91   return $RETVAL
92 }
93
94
95 # Stop stunnel.
96 #
97 stop() {
98   if [ ! -f $LOCK_FILE ]; then
99     echo "stunnel is not running!"
100     exit 0
101
102   else
103
104     echo -n $"Shutting down $prog: "
105     killproc -p $PIDFILE stunnel
106     RETVAL=$?
107     [ $RETVAL -eq 0 ]
108      rm -f $LOCK_FILE
109     echo
110     return $RETVAL
111
112   fi
113 }
114
115 # See how we were called.
116 case "$1" in
117    start)
118   start
119   ;;
120    stop)
121   stop
122   ;;
123    restart)
124   stop
125   start
126   ;;
127    condrestart)
128   if [ -f $LOCK_FILE ]; then
129      stop
130      start
131      RETVAL=$?
132   fi
133   ;;
134    status)
135   status -p $PIDFILE stunnel
136   RETVAL=$?
137   ;;
138    *)
139     echo $"Usage: $0 {start|stop|restart|condrestart|status}"
140     RETVAL=1
141 esac
142
143 exit $RETVAL