| #!/bin/sh |
| # |
| # /etc/init.d/conntrackd |
| # |
| # Maximilian Wilhelm <max@rfc2324.org> |
| # -- Mon, 06 Nov 2006 18:39:07 +0100 |
| # |
| # Roman I Khimov <khimov@altell.ru> |
| # -- Tue, 27 Oct 2009 14:34:00 +0300 |
| |
| ### BEGIN INIT INFO |
| # Provides: conntrackd |
| # Required-Start: $remote_fs $syslog |
| # Required-Stop: $remote_fs $syslog |
| # Default-Start: 2 3 4 5 |
| # Default-Stop: 0 1 6 |
| # Description: Starts conntrackd |
| # short-description: Starts conntrackd |
| ### END INIT INFO |
| |
| export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
| |
| NAME="conntrackd" |
| DAEMON="/usr/sbin/conntrackd" |
| CONFIG="/etc/conntrackd/conntrackd.conf" |
| PIDFILE="/var/run/${NAME}.pid" |
| |
| |
| # Gracefully exit if there is no daemon (debian way of life) |
| if [ ! -x "${DAEMON}" ]; then |
| exit 0 |
| fi |
| |
| # Check for config file |
| if [ ! -f /etc/conntrackd/conntrackd.conf ]; then |
| echo "Error: There is no config file for $NAME" >&2 |
| exit 1; |
| fi |
| |
| case "$1" in |
| start) |
| echo -n "Starting $NAME: " |
| for i in nf_conntrack_netlink nf_conntrack_netbios_ns nf_conntrack_proto_dccp nf_conntrack_tftp \ |
| nf_conntrack_sane nf_conntrack_pptp nf_conntrack_irc nf_conntrack_amanda nf_conntrack_h323 \ |
| nf_conntrack_proto_udplite nf_conntrack_proto_gre nf_conntrack_proto_sctp nf_conntrack_ftp \ |
| nf_conntrack_sip; do |
| modprobe $i >/dev/null 2>/dev/null & |
| done |
| start-stop-daemon --start --quiet --make-pidfile --pidfile "/var/run/${NAME}.pid" --background --exec "${DAEMON}" |
| RET=$? |
| if [ "$?" = "0" ]; then |
| sleep 2 |
| # Sync with other server |
| conntrackd -n |
| echo "done." |
| else |
| echo "FAILED!" |
| fi |
| exit $RET |
| ;; |
| stop) |
| echo -n "Stopping $NAME:" |
| start-stop-daemon --stop --quiet --oknodo --pidfile "/var/run/${NAME}.pid" && echo "done." || echo "FAILED!" |
| ;; |
| status) |
| echo -n "conntrackd " |
| start-stop-daemon -q -K -t -x $DAEMON |
| RET=$? |
| if [ "$RET" = "0" ]; then |
| PID=`cat $PIDFILE` |
| echo "($PID) is running" |
| else |
| echo "is not running" |
| exit $RET |
| fi |
| ;; |
| restart) |
| $0 stop |
| $0 start |
| ;; |
| |
| *) |
| echo "Usage: /etc/init.d/conntrackd {start|stop|restart}" |
| exit 1 |
| esac |
| |
| exit 0 |