| 
					
				 | 
			
			
				@@ -0,0 +1,141 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#! /bin/sh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+### BEGIN INIT INFO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Provides:          softflowd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Required-Start:    $network $remote_fs $syslog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Required-Stop:     $network $remote_fs $syslog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Default-Start:     2 3 4 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Default-Stop:      0 1 6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Short-Description: Flow-based network traffic analyser. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+### END INIT INFO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Author: Christoph Biedl <debian.packages.hhqj@manchmal.in-ulm.de> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Based on /etc/init.d/skeleton, written by 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Miquel van Smoorenburg <miquels@cistron.nl>, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# modified for Debian by Ian Murdock <imurdock@gnu.ai.mit.edu>. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+PATH=/sbin:/usr/sbin:/bin:/usr/bin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DAEMON=/usr/sbin/softflowd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NAME=softflowd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DESC="Flow-based network traffic analyser" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFAULT=/etc/default/$NAME 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+PIDFILE=/var/run/$NAME.pid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+PRIVDROP_CHROOT_DIR=/var/run/softflowd/chroot 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+test -x "$DAEMON" || exit 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Include softflowd defaults if available 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+INTERFACE= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+OPTIONS= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+[ -r "$DEFAULT" ] && . "$DEFAULT" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Load the VERBOSE setting and other rcS variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+. /lib/init/vars.sh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Define LSB log_* functions. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+. /lib/lsb/init-functions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+case "$1" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+start|restart|force-reload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if [ -z "$INTERFACE" ] ; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	log_daemon_msg "NOT starting $DESC" "$NAME" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	log_action_msg "\nEdit $DEFAULT and define the INTERFACE variable" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	log_end_msg 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	exit 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+[ -d "$PRIVDROP_CHROOT_DIR" ] || mkdir -p "$PRIVDROP_CHROOT_DIR" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Function that starts the daemon/service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+do_start() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #   0 if daemon has been started 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #   1 if daemon was already running 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #   2 if daemon could not be started 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    start-stop-daemon --start --quiet --pidfile $PIDFILE \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	--exec $DAEMON --test > /dev/null || \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    start-stop-daemon --start --quiet --pidfile $PIDFILE \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	--exec $DAEMON -- -i "$INTERFACE" $OPTIONS || \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Function that stops the daemon/service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+do_stop() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #   0 if daemon has been stopped 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #   1 if daemon was already stopped 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #   2 if daemon could not be stopped 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #   other if a failure occurred 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	--pidfile $PIDFILE --name $NAME 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RETVAL="$?" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [ "$RETVAL" = 2 ] && return 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Wait for children to finish too if this is a daemon that forks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # and if the daemon is only ever run from this initscript. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # If the above conditions are not satisfied then add some other code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # that waits for the process to drop all resources that could be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # needed by services started subsequently.  A last resort is to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # sleep for some time. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	--exec $DAEMON 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [ "$?" = 2 ] && return 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Many daemons don't delete their pidfiles when they exit. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rm -f $PIDFILE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return "$RETVAL" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+case "$1" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+start) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    do_start 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case "$?" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+stop) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    do_stop 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case "$?" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+status) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+restart|force-reload) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log_daemon_msg "Restarting $DESC" "$NAME" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    do_stop 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case "$?" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	0|1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    do_start 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    case "$?" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		0) log_end_msg 0 ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		1) log_end_msg 1 ;; # Old process is still running 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		*) log_end_msg 1 ;; # Failed to start 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    # Failed to stop 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    log_end_msg 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    exit 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+: 
			 |