Whitespace fixing.
[fwd] / debian / fwd.init
CommitLineData
c9731e8b
MW
1#! /bin/sh
2### BEGIN INIT INFO
9155ea97 3# Provides: fwd
c9731e8b
MW
4# Required-Start: $local_fs $remote_fs
5# Required-Stop: $local_fs $remote_fs
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: Start port forwarding server
9# Description: This file should be used to construct scripts to be
10# placed in /etc/init.d.
11### END INIT INFO
12
13# Author: Mark Wooding <mdw@distorted.org.uk>
14
15# Do NOT "set -e"
16
17# PATH should only include /usr/* if it runs after the mountnfs.sh script
18PATH=/sbin:/usr/sbin:/bin:/usr/bin
19DESC="port forwarding daemon"
9155ea97
MW
20NAME=fwd
21DAEMON=/usr/bin/fwd
c9731e8b
MW
22PIDFILE=/var/run/$NAME.pid
23SCRIPTNAME=/etc/init.d/$NAME
9155ea97 24FWUSER=fwd FWGROUP=fwd
c9731e8b 25DAEMON_ARGS="--syslog"
9155ea97
MW
26CONFIG=/etc/fwd.conf
27OLDCONFIG=/etc/fw.conf
c9731e8b
MW
28
29# Exit if the package is not installed
30[ -x "$DAEMON" ] || exit 0
31
32# Read configuration variable file if it is present
33[ -r /etc/default/$NAME ] && . /etc/default/$NAME
34
35# Exit if no configuration file
9155ea97
MW
36if [ -r "$CONFIG" ] && [ -r "$OLDCONFIG" ]; then
37 log_warning_message \
38 "Using old config file /etc/fw.conf. Please rename it to /etc/fwd.conf."
39 CONFIG=$OLDCONFIG
40fi
c9731e8b
MW
41[ -r "$CONFIG" ] || exit 0
42
43# Load the VERBOSE setting and other rcS variables
44. /lib/init/vars.sh
45
46# Define LSB log_* functions.
47# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
48. /lib/lsb/init-functions
49
50#
51# Function that starts the daemon/service
52#
53do_start()
54{
55 # Return
56 # 0 if daemon has been started
57 # 1 if daemon was already running
58 # 2 if daemon could not be started
59 start-stop-daemon --start --quiet --pidfile $PIDFILE \
60 --exec $DAEMON --test > /dev/null \
61 || return 1
62 start-stop-daemon --start --quiet --pidfile $PIDFILE \
63 --exec $DAEMON -- \
64 --pidfile="$PIDFILE" \
65 --daemon \
66 $DAEMON_ARGS \
67 --setuid="$FWUSER" --setgid="$FWGROUP" \
68 --file="$CONFIG" \
69 || return 2
70}
71
72#
73# Function that stops the daemon/service
74#
75do_stop()
76{
77 # Return
78 # 0 if daemon has been stopped
79 # 1 if daemon was already stopped
80 # 2 if daemon could not be stopped
81 # other if a failure occurred
82 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
83 --pidfile "$PIDFILE" --name $NAME
84 RETVAL="$?"
85 [ "$RETVAL" = 2 ] && return 2
86 rm -f "$PIDFILE"
87 return "$RETVAL"
88}
89
90#
91# Function that sends a SIGHUP to the daemon/service
92#
93do_reload() {
94 #
95 # If the daemon can reload its configuration without
96 # restarting (for example, when it is sent a SIGHUP),
97 # then implement that here.
98 #
99 start-stop-daemon --stop --signal 1 --quiet --pidfile "$PIDFILE" \
100 --name $NAME
101 return 0
102}
103
104case "$1" in
105 start)
106 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
107 do_start
108 case "$?" in
109 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
110 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
111 esac
112 ;;
113 stop)
114 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
115 do_stop
116 case "$?" in
117 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
118 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
119 esac
120 ;;
121 reload|force-reload)
122 log_daemon_msg "Reloading $DESC" "$NAME"
123 do_reload
124 log_end_msg $?
125 ;;
126 restart)
127 log_daemon_msg "Restarting $DESC" "$NAME"
128 do_stop
129 case "$?" in
130 0|1)
131 do_start
132 case "$?" in
133 0) log_end_msg 0 ;;
134 1) log_end_msg 1 ;; # Old process is still running
135 *) log_end_msg 1 ;; # Failed to start
136 esac
137 ;;
138 *)
139 # Failed to stop
140 log_end_msg 1
141 ;;
142 esac
143 ;;
144 *)
145 echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
146 exit 3
147 ;;
148esac
149
150: