1#!/bin/sh
2#
3# /etc/init.d/conntrackd
4#
5# Maximilian Wilhelm <max@rfc2324.org>
6#  -- Mon, 06 Nov 2006 18:39:07 +0100
7#
8# Roman I Khimov <khimov@altell.ru>
9#  -- Tue, 27 Oct 2009 14:34:00 +0300
10
11### BEGIN INIT INFO
12# Provides:          conntrackd
13# Required-Start:    $remote_fs $syslog
14# Required-Stop:     $remote_fs $syslog
15# Default-Start:     2 3 4 5
16# Default-Stop:      0 1 6
17# Description: Starts conntrackd
18# short-description: Starts conntrackd
19### END INIT INFO
20
21export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
22
23NAME="conntrackd"
24DAEMON="/usr/sbin/conntrackd"
25CONFIG="/etc/conntrackd/conntrackd.conf"
26PIDFILE="/var/run/${NAME}.pid"
27
28
29# Gracefully exit if there is no daemon (debian way of life)
30if [ ! -x "${DAEMON}" ]; then
31	exit 0
32fi
33
34# Check for config file
35if [ ! -f /etc/conntrackd/conntrackd.conf ]; then
36	echo "Error: There is no config file for $NAME" >&2
37	exit 1;
38fi
39
40case "$1" in
41  start)
42        echo -n "Starting $NAME: "
43	for i in nf_conntrack_netlink nf_conntrack_netbios_ns nf_conntrack_proto_dccp nf_conntrack_tftp \
44		nf_conntrack_sane nf_conntrack_pptp nf_conntrack_irc nf_conntrack_amanda nf_conntrack_h323 \
45		nf_conntrack_proto_udplite nf_conntrack_proto_gre nf_conntrack_proto_sctp nf_conntrack_ftp \
46		nf_conntrack_sip; do
47		modprobe $i >/dev/null 2>/dev/null &
48	done
49	start-stop-daemon --start --quiet --make-pidfile --pidfile "/var/run/${NAME}.pid" --background --exec "${DAEMON}"
50	RET=$?
51	if [ "$?" = "0" ]; then
52		sleep 2
53		# Sync with other server
54		conntrackd -n
55		echo "done."
56	else
57		echo "FAILED!"
58	fi
59	exit $RET
60	;;
61  stop)
62        echo -n "Stopping $NAME:"
63	start-stop-daemon --stop --quiet --oknodo --pidfile "/var/run/${NAME}.pid" && echo "done." || echo "FAILED!"
64	;;
65  status)
66	echo -n "conntrackd "
67	start-stop-daemon -q -K -t -x $DAEMON
68	RET=$?
69	if [ "$RET" = "0" ]; then
70                PID=`cat $PIDFILE`
71		echo "($PID) is running"
72	else
73		echo "is not running"
74		exit $RET
75	fi
76	;;
77  restart)
78	$0 stop
79	$0 start
80	;;
81
82  *)
83	echo "Usage: /etc/init.d/conntrackd {start|stop|restart}"
84	exit 1
85esac
86
87exit 0
88