Yes, I’m at it again. This time it’s for IGMPProxy.
IGMPProxy is an IGMP snooper/proxy daemon for routing multicast packets across networks. Pretty useful for IPTV services like Telus TV or AT&T U-Verse.
Again, Google didn’t result in a working script, although a Russian tried to and failed to produce a working init script for IGMPProxy. Daemonize is required to run the daemon because for some reason the ‘daemon’ as claimed by IGMPProxy doesn’t work for some reason.
#!/bin/sh # # igmpproxy An IGMP Proxy/Snooper Daemon # # chkconfig: 35 85 99 # description: An IGMP Proxy daemon for routing multicast # packets from network to network ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: # Default-Stop: # Short-Description: # Description: ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions exec="/usr/sbin/igmpproxy" prog="igmpproxy" config="/etc/igmpproxy.conf" args_normal="-d" args_debug="-vv" lockfile=/var/lock/subsys/$prog start() { [ -x $exec ] || exit 5 [ -f $config ] || exit 6 echo -n $"Starting $prog: " # if not running, start it up here, usually something like "daemon $exec" daemon daemonize $exec $config $args_normal retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } start_debug() { [ -x $exec ] || exit 5 [ -f $config ] || exit 6 echo -n $"Starting $prog: " # if not running, start it up here, usually something like "daemon $exec" daemon daemonize $exec $config $args_debug retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " # stop it here, often "killproc $prog" killproc $prog retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { stop start } force_reload() { restart } rh_status() { # run checks to determine if the service is running or use generic status status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; start_debug) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart) $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 restart ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" exit 2 esac exit $?