-if($ARGV[0] eq "start") {
- find_nets;
- print "Starting $DESC:";
- foreach $n (@NETS) {
- print " $n";
- system("$DAEMON -n $_[0] $EXTRA");
- }
- print ".\n";
-} elsif ($ARGV[0] eq "stop") {
- find_nets;
- print "Stopping $DESC:";
- foreach $n (@NETS) {
- print " $n";
- system("$DAEMON -n $_[0] $EXTRA -k");
- }
- print ".\n";
-} elsif ($ARGV[0] eq "restart" || $ARGV[0] eq "force-reload") {
- find_nets;
- print "Stopping $DESC:";
- foreach $n (@NETS) {
- print " $n";
- system("$DAEMON -n $_[0] $EXTRA -k");
- }
- print ".\n";
- print "Starting $DESC:";
- foreach $n (@NETS) {
- print " $n";
- system("$DAEMON -n $_[0] $EXTRA");
- }
- print ".\n";
-} else {
- die "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}\n";
-}
+case "$1" in
+ start)
+ find_nets
+ echo -n "Starting $DESC:"
+ for n in $NETS ; do
+ echo -n " $n"
+ $DAEMON -n $n $EXTRA
+ done
+ echo "."
+ ;;
+ stop)
+ find_nets
+ echo -n "Stopping $DESC:"
+ for n in $NETS ; do
+ echo -n " $n"
+ $DAEMON -n $n $EXTRA -k
+ done
+ echo "."
+ ;;
+ restart|force-reload)
+ find_nets
+ echo -n "Restarting $DESC:"
+ for n in $NETS ; do
+ echo -n " $n"
+ $DAEMON -n $n $EXTRA -k
+ sleep 1
+ $DAEMON -n $n $EXTRA
+ done
+ echo "."
+ ;;
+ *)
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}"
+ exit 1
+ ;;
+esac