diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi
index d58513539..c7314be92 100644
--- a/html/cgi-bin/services.cgi
+++ b/html/cgi-bin/services.cgi
@@ -117,7 +117,7 @@ print "\n";
my $paramstr=$ENV{QUERY_STRING};
my @param=split(/!/, $paramstr);
if ($param[1] ne '') {
- my $temp = `/usr/local/bin/addonctrl @param[0] @param[1]`;
+ system("/usr/local/bin/addonctrl @param[0] @param[1] > /dev/null 2>&1");
}
print < /dev/null 2>&1
- killall -s KILL -w saned > /dev/null 2>&1
- /usr/local/bin/sanedloop &
+ loadproc /usr/local/bin/sanedloop
evaluate_retval
;;
stop)
boot_mesg "Stopping saned - network scanner deamon..."
- killall -s KILL -w sanedloop > /dev/null 2>&1
+ killproc sanedloop
killall -s KILL -w saned > /dev/null 2>&1
- echo_ok
+ exit 0
;;
restart)
+ ${0} stop
+ sleep 1
${0} start
;;
diff --git a/src/scripts/sanedloop b/src/scripts/sanedloop
index f29425af4..2b02903ec 100644
--- a/src/scripts/sanedloop
+++ b/src/scripts/sanedloop
@@ -2,7 +2,4 @@
#
# saned is intended for use with (x)inet.d so we have to recall it in a loop
#
-while true;
-do
- /usr/sbin/saned -s0;
-done;
+(while true; do /usr/sbin/saned -s0; done) &