racoon.init revision 1.1.1.1.96.2 1 1.1 manu #! /bin/sh
2 1.1 manu # Copyright (c) 2001-2002 SuSE GmbH Nuernberg, Germany.
3 1.1 manu #
4 1.1 manu # Author: Michal Ludvig <feedback (at] suse.de>, 2004
5 1.1 manu #
6 1.1 manu # /etc/init.d/ipsec-tools
7 1.1 manu # and its symbolic link
8 1.1 manu # /usr/sbin/rcipsec-tools
9 1.1 manu #
10 1.1 manu # System startup script for the IPsec key management daemon
11 1.1 manu #
12 1.1 manu ### BEGIN INIT INFO
13 1.1 manu # Provides: racoon
14 1.1 manu # Required-Start: $remote_fs $named $syslog
15 1.1 manu # Required-Stop: $remote_fs $named $syslog
16 1.1 manu # Default-Start: 3 5
17 1.1 manu # Default-Stop: 0 1 2 6
18 1.1 manu # Description: IPsec key management daemon
19 1.1 manu ### END INIT INFO
20 1.1 manu
21 1.1 manu SETKEY="IPsec policies"
22 1.1 manu SETKEY_BIN=/usr/sbin/setkey
23 1.1 manu SETKEY_CONF=/etc/racoon/setkey.conf
24 1.1 manu
25 1.1 manu RACOON="IPsec IKE daemon (racoon)"
26 1.1 manu RACOON_BIN=/usr/sbin/racoon
27 1.1 manu RACOON_CONF=/etc/racoon/racoon.conf
28 1.1 manu RACOON_PIDFILE=/var/run/racoon.pid
29 1.1 manu
30 1.1 manu test -x $SETKEY_BIN || exit 5
31 1.1 manu test -x $RACOON_BIN || exit 5
32 1.1 manu
33 1.1 manu test -f /etc/sysconfig/racoon && . /etc/sysconfig/racoon
34 1.1 manu
35 1.1 manu # Shell functions sourced from /etc/rc.status:
36 1.1 manu # rc_check check and set local and overall rc status
37 1.1 manu # rc_status check and set local and overall rc status
38 1.1 manu # rc_status -v ditto but be verbose in local rc status
39 1.1 manu # rc_status -v -r ditto and clear the local rc status
40 1.1 manu # rc_failed set local and overall rc status to failed
41 1.1 manu # rc_failed <num> set local and overall rc status to <num><num>
42 1.1 manu # rc_reset clear local rc status (overall remains)
43 1.1 manu # rc_exit exit appropriate to overall rc status
44 1.1 manu . /etc/rc.status
45 1.1 manu
46 1.1 manu # First reset status of this service
47 1.1 manu rc_reset
48 1.1 manu
49 1.1 manu # Return values acc. to LSB for all commands but status:
50 1.1 manu # 0 - success
51 1.1 manu # 1 - generic or unspecified error
52 1.1 manu # 2 - invalid or excess argument(s)
53 1.1 manu # 3 - unimplemented feature (e.g. "reload")
54 1.1 manu # 4 - insufficient privilege
55 1.1 manu # 5 - program is not installed
56 1.1 manu # 6 - program is not configured
57 1.1 manu # 7 - program is not running
58 1.1 manu #
59 1.1 manu # Note that starting an already running service, stopping
60 1.1 manu # or restarting a not-running service as well as the restart
61 1.1 manu # with force-reload (in case signalling is not supported) are
62 1.1 manu # considered a success.
63 1.1 manu
64 1.1 manu case "$1" in
65 1.1 manu start)
66 1.1 manu # Setting up SPD policies is not required.
67 1.1 manu if [ -f $SETKEY_CONF ]; then
68 1.1 manu echo -n "Setting up $SETKEY"
69 1.1 manu $SETKEY_BIN $SETKEY_OPTIONS -f $SETKEY_CONF
70 1.1 manu rc_status -v
71 1.1 manu rc_reset
72 1.1 manu fi
73 1.1 manu
74 1.1 manu echo -n "Starting $RACOON "
75 1.1 manu ## If there is no conf file, skip starting of ddtd
76 1.1 manu ## and return with "program not configured"
77 1.1 manu if ! [ -f $RACOON_CONF ]; then
78 1.1 manu echo -e -n "... no configuration file found"
79 1.1 manu rc_status -s
80 1.1 manu # service is not configured
81 1.1 manu rc_failed 6
82 1.1 manu rc_exit
83 1.1 manu fi
84 1.1 manu
85 1.1 manu # startproc should return 0, even if service is
86 1.1 manu # already running to match LSB spec.
87 1.1 manu startproc $RACOON_BIN $RACOON_OPTIONS -f $RACOON_CONF
88 1.1 manu rc_status -v
89 1.1 manu ;;
90 1.1 manu
91 1.1 manu stop)
92 1.1 manu echo -n "Shutting down $RACOON"
93 1.1 manu ## Stop daemon with killproc(8) and if this fails
94 1.1 manu ## set echo the echo return value.
95 1.1 manu
96 1.1 manu killproc -p $RACOON_PIDFILE -TERM $RACOON_BIN
97 1.1 manu
98 1.1 manu # Remember status and be verbose
99 1.1 manu rc_status -v
100 1.1 manu rc_reset
101 1.1 manu
102 1.1 manu # Flush SPD policies if required
103 1.1 manu if [ -n "$SETKEY_FLUSH_OPTIONS" ]; then
104 1.1 manu echo -n "Flushing $SETKEY"
105 1.1 manu $SETKEY_BIN $SETKEY_FLUSH_OPTIONS
106 1.1 manu rc_status -v
107 1.1 manu fi
108 1.1 manu ;;
109 1.1 manu try-restart)
110 1.1 manu ## Stop the service and if this succeeds (i.e. the
111 1.1 manu ## service was running before), start it again.
112 1.1 manu $0 stop && $0 start
113 1.1 manu
114 1.1 manu # Remember status and be quiet
115 1.1 manu rc_status
116 1.1 manu ;;
117 1.1 manu restart)
118 1.1 manu ## Stop the service and regardless of whether it was
119 1.1 manu ## running or not, start it again.
120 1.1 manu $0 stop
121 1.1 manu $0 start
122 1.1 manu
123 1.1 manu # Remember status and be quiet
124 1.1 manu rc_status
125 1.1 manu ;;
126 1.1 manu force-reload)
127 1.1 manu ## Signal the daemon to reload its config. Most daemons
128 1.1 manu ## do this on signal 1 (SIGHUP).
129 1.1 manu ## If it does not support it, restart.
130 1.1 manu
131 1.1 manu echo -n "Reload service $RACOON"
132 1.1 manu killproc -p $RACOON_PIDFILE -HUP $RACOON_BIN
133 1.1 manu rc_status -v
134 1.1 manu ;;
135 1.1 manu reload)
136 1.1 manu ## Like force-reload, but if daemon does not support
137 1.1 manu ## signalling, do nothing (!)
138 1.1 manu
139 1.1 manu echo -n "Reload service $RACOON"
140 1.1 manu killproc -p $RACOON_PIDFILE -HUP $RACOON_BIN
141 1.1 manu rc_status -v
142 1.1 manu ;;
143 1.1 manu status)
144 1.1 manu echo -n "Checking for $RACOON: "
145 1.1 manu ## Check status with checkproc(8), if process is running
146 1.1 manu ## checkproc will return with exit status 0.
147 1.1 manu
148 1.1 manu # Status has a slightly different for the status command:
149 1.1 manu # 0 - service running
150 1.1 manu # 1 - service dead, but /var/run/ pid file exists
151 1.1 manu # 2 - service dead, but /var/lock/ lock file exists
152 1.1 manu # 3 - service not running
153 1.1 manu
154 1.1 manu checkproc -p $RACOON_PIDFILE $RACOON_BIN
155 1.1 manu rc_status -v
156 1.1 manu ;;
157 1.1 manu probe)
158 1.1 manu ## Optional: Probe for the necessity of a reload,
159 1.1 manu ## give out the argument which is required for a reload.
160 1.1 manu
161 1.1 manu test "$RACOON_CONF" -nt "$RACOON_PIDFILE" && echo reload
162 1.1 manu ;;
163 1.1 manu *)
164 1.1 manu echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
165 1.1 manu exit 1
166 1.1 manu ;;
167 1.1 manu esac
168 1.1 manu rc_exit
169