diff --git a/doc/wrs-developer-manual.in b/doc/wrs-developer-manual.in
index bc2631714a1aabf99bdffe788e8e1689ce906059..1c723517de085f5310df3592d93ae5d8996feb31 100644
--- a/doc/wrs-developer-manual.in
+++ b/doc/wrs-developer-manual.in
@@ -1814,6 +1814,47 @@ gentle restarts before.
 Date set from file @t{/update/saved_date} is never correct, but is based on
 best effort principle.
 
+@c ==========================================================================
+@node Supervision of running processes
+@section Supervision of running processes
+
+During normal operation @t{monit} supervises several processes running on a wrs
+switch. Check is done every 10 seconds. As for now supervised processes are:
+@t{wrsw_rtud},
+@t{wrsw_hal},
+@t{ppsi},
+@t{lighttpd},
+@t{dropbear},
+@t{snmpd}.
+
+In case any of the supervised processes does not run anymore (because of a crash,
+exit etc.), @t{monit} restarts missing process. If 5 restarts of a process
+occur during 10 cycles (10*10 seconds), the entire switch is restarted.
+
+Since @t{monit} is started from the inittab, even if @t{monit} crashes for some
+reason it will be re-spawned by the @t{init}.
+
+@c ==========================================================================
+@node Disabling monit
+@subsection Disabling monit
+
+In some cases, especially during development it is convenient to disable
+@t{monit} to avoid annoying re-spawns of the processes and restarts of the entire
+switch.
+@t{monit} can be disabled with command:
+@example
+/etc/init.d/monit.sh stop
+@end example
+which will send STOP signal to @t{monit} or by adding @t{CONFIG_MONIT_DISABLE=y} to dot-config.
+
+To re-enable @t{monit} first make sure there is no @t{CONFIG_MONIT_DISABLE=y} in dot-config, then execute command:
+@example
+/etc/init.d/monit.sh start
+@end example
+
+NOTE: Even when @t{monit} is disabled there is a process @t{/usr/bin/monit} in
+a process list, but its state is "stopped" (T).
+
 @c ==========================================================================
 @node SDB and Hardware Information
 @section SDB and Hardware Information
diff --git a/doc/wrs-user-manual.in b/doc/wrs-user-manual.in
index 1c6ec2965b6cc31855acbae5af4c06975c2bc245..0080570c98a032af0b3c6b957acaf19946ea3735 100644
--- a/doc/wrs-user-manual.in
+++ b/doc/wrs-user-manual.in
@@ -554,7 +554,7 @@ value is changed by the web interface, proper action is taken.
 @item CONFIG_MONIT_DISABLE
 
 	Disable monitoring of running processes by monit. Monit by default
-        re spawns processes that have died. This option is useful mostly during
+        re-spawns processes that have died. This option is useful mostly during
         development.
 
 @end table
diff --git a/userspace/rootfs_override/etc/init.d/dropbear b/userspace/rootfs_override/etc/init.d/dropbear
index 5f62740ce6b73d873e776b26af8fd010ed203069..ce247e9a294e9ea3590e9ab6666b8ecb91d82170 100755
--- a/userspace/rootfs_override/etc/init.d/dropbear
+++ b/userspace/rootfs_override/etc/init.d/dropbear
@@ -40,14 +40,27 @@ start() {
 	fi
 	umask 077
 	start-stop-daemon -S -q -p /var/run/dropbear.pid --exec /usr/sbin/dropbear
-	start_counter
-	echo "OK"
+	ret=$?
+	if [ $ret -eq 0 ]; then
+		start_counter
+		echo "OK"
+	elif [ $ret -eq 1 ]; then
+		echo "Failed (already running?)"
+	else
+		echo "Failed"
+	fi
 }
+
 stop() {
 	echo -n "Stopping dropbear sshd: "
 	start-stop-daemon -K -q -p /var/run/dropbear.pid
-	echo "OK"
+	if [ $? -eq 0 ]; then
+		echo "OK"
+	else
+		echo "Failed"
+	fi
 }
+
 restart() {
 	stop
 	start
diff --git a/userspace/rootfs_override/etc/init.d/hald.sh b/userspace/rootfs_override/etc/init.d/hald.sh
new file mode 100755
index 0000000000000000000000000000000000000000..57b11a65f42e9a560cb772186ed8295b1721627c
--- /dev/null
+++ b/userspace/rootfs_override/etc/init.d/hald.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+dotconfig=/wr/etc/dot-config
+
+start() {
+    echo -n "Starting HAL daemon: "
+
+    if [ -f $dotconfig ]; then
+	. $dotconfig
+    else
+	echo "$0 unable to source dot-config ($dotconfig)!"
+    fi
+
+    WRS_LOG=$CONFIG_WRS_LOG_HAL
+
+    # if empty turn it to /dev/null
+    if [ -z $WRS_LOG ]; then
+	WRS_LOG="/dev/null";
+    fi
+
+    # if a pathname, use it
+    if echo "$WRS_LOG" | grep / > /dev/null; then
+	eval LOGPIPE=\" \> $WRS_LOG 2\>\&1 \";
+    else
+	# not a pathname: use verbatim
+	eval LOGPIPE=\" 2\>\&1 \| logger -t wr-switch -p $WRS_LOG\"
+    fi
+
+# be carefull with pidof, no running script should have the same name as process
+    if pidof wrsw_hal > /dev/null; then
+	# wrsw_hal already running
+	echo "Failed (already running?)"
+    else
+	eval /wr/bin/wrsw_hal $LOGPIPE \&
+	echo "OK"
+    fi
+}
+
+stop() {
+    echo -n "Stopping HAL "
+    start-stop-daemon -K -q --exec /wr/bin/wrsw_hal
+    if [ $? -eq 0 ]; then
+	echo "OK"
+    else
+	echo "Failed"
+    fi
+}
+
+restart() {
+    stop
+    start
+}
+
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart|reload)
+	restart
+	;;
+  *)
+	echo $"Usage: $0 {start|stop|restart}"
+	exit 1
+	;;
+esac
diff --git a/userspace/rootfs_override/etc/init.d/lighttpd.sh b/userspace/rootfs_override/etc/init.d/lighttpd.sh
index 0c59a0b66900243c00fc92cb4e1d3b7389b443cd..ad1d7445c353ec4721599a70f8b8dd007db3e320 100755
--- a/userspace/rootfs_override/etc/init.d/lighttpd.sh
+++ b/userspace/rootfs_override/etc/init.d/lighttpd.sh
@@ -21,23 +21,27 @@ start() {
 	# running
 	start-stop-daemon -q -p /var/run/lighttpd.pid -S \
 		--exec /usr/sbin/lighttpd -- -f /var/www/lighttpd.config
-	if [ $? -eq 0 ]; then
+	ret=$?
+	if [ $ret -eq 0 ]; then
 		start_counter
 		echo "OK"
-	else
+	elif [ $ret -eq 1 ]; then
 		echo "Failed (already running?)"
+	else
+		echo "Failed"
 	fi
 }
+
 stop() {
 	echo -n "Stopping lighttpd daemon: "
 	start-stop-daemon -K -q -p /var/run/lighttpd.pid
 	if [ $? -eq 0 ]; then
-		start_counter
 		echo "OK"
 	else
 		echo "Failed"
 	fi
 }
+
 restart() {
 	stop
 	start
diff --git a/userspace/rootfs_override/etc/init.d/ppsi.sh b/userspace/rootfs_override/etc/init.d/ppsi.sh
new file mode 100755
index 0000000000000000000000000000000000000000..65e0c714cad851d5f283a25c7a98c6dfd88af0bd
--- /dev/null
+++ b/userspace/rootfs_override/etc/init.d/ppsi.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+dotconfig=/wr/etc/dot-config
+
+start() {
+    echo -n "Starting PTP daemon: "
+
+    if [ -f $dotconfig ]; then
+	. $dotconfig
+    else
+	echo "$0 unable to source dot-config ($dotconfig)!"
+    fi
+
+    WRS_LOG=$CONFIG_WRS_LOG_PTP
+
+    # if empty turn it to /dev/null
+    if [ -z $WRS_LOG ]; then
+	WRS_LOG="/dev/null";
+    fi
+
+    # if a pathname, use it
+    if echo "$WRS_LOG" | grep / > /dev/null; then
+	eval LOGPIPE=\" \> $WRS_LOG 2\>\&1 \";
+    else
+	# not a pathname: use verbatim
+	eval LOGPIPE=\" 2\>\&1 \| logger -t wr-switch -p $WRS_LOG\"
+    fi
+
+# be carefull with pidof, no running script should have the same name as process
+    if pidof ppsi > /dev/null; then
+	# ppsi already running
+	echo "Failed (already running?)"
+    else
+	eval /wr/bin/ppsi $LOGPIPE \&
+	echo "OK"
+    fi
+}
+
+stop() {
+    echo -n "Stopping PTP: "
+    start-stop-daemon -K -q --exec /wr/bin/ppsi
+    if [ $? -eq 0 ]; then
+	echo "OK"
+    else
+	echo "Failed"
+    fi
+}
+
+restart() {
+    stop
+    start
+}
+
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart|reload)
+	restart
+	;;
+  *)
+	echo $"Usage: $0 {start|stop|restart}"
+	exit 1
+	;;
+esac
diff --git a/userspace/rootfs_override/etc/init.d/reboot.sh b/userspace/rootfs_override/etc/init.d/reboot.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a943d0fc2e471f8ce1659b52fc9491ff4e09c5f6
--- /dev/null
+++ b/userspace/rootfs_override/etc/init.d/reboot.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# simple wrapper for monit to announce reboot to console
+echo "Monit triggered reboot due to $1" > /dev/console
+/sbin/reboot
diff --git a/userspace/rootfs_override/etc/init.d/rtud.sh b/userspace/rootfs_override/etc/init.d/rtud.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8ae637f7c380c69810ba4e70cdaf0da2e4aa2182
--- /dev/null
+++ b/userspace/rootfs_override/etc/init.d/rtud.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+dotconfig=/wr/etc/dot-config
+
+start() {
+    echo -n "Starting RTUd daemon: "
+
+    if [ -f $dotconfig ]; then
+	. $dotconfig
+    else
+	echo "$0 unable to source dot-config ($dotconfig)!"
+    fi
+
+    WRS_LOG=$CONFIG_WRS_LOG_RTU
+
+    # if empty turn it to /dev/null
+    if [ -z $WRS_LOG ]; then
+	WRS_LOG="/dev/null";
+    fi
+
+    # if a pathname, use it
+    if echo "$WRS_LOG" | grep / > /dev/null; then
+	eval LOGPIPE=\" \> $WRS_LOG 2\>\&1 \";
+    else
+	# not a pathname: use verbatim
+	eval LOGPIPE=\" 2\>\&1 \| logger -t wr-switch -p $WRS_LOG\"
+    fi
+
+# be carefull with pidof, no running script should have the same name as process
+    if pidof rtud > /dev/null; then
+	# rtud already running
+	echo "Failed (already running?)"
+    else
+	eval /wr/bin/wrsw_rtud $LOGPIPE \&
+	# ensure we receive UDP PTP frames, since ppsi supports UDP too.
+	/wr/bin/rtu_stat add 01:00:5e:00:01:81 18 0 &
+	echo "OK"
+    fi
+}
+
+stop() {
+    echo -n "Stopping RTUd "
+    start-stop-daemon -K -q --exec /wr/bin/wrsw_rtud
+    if [ $? -eq 0 ]; then
+	echo "OK"
+    else
+	echo "Failed"
+    fi
+}
+
+restart() {
+    stop
+    start
+}
+
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart|reload)
+	restart
+	;;
+  *)
+	echo $"Usage: $0 {start|stop|restart}"
+	exit 1
+	;;
+esac
diff --git a/userspace/rootfs_override/etc/init.d/snmp b/userspace/rootfs_override/etc/init.d/snmpd
similarity index 60%
rename from userspace/rootfs_override/etc/init.d/snmp
rename to userspace/rootfs_override/etc/init.d/snmpd
index 652781a3143bd019cd2507b79ccf9bec304a522b..db2955076223042b592fd30fcd4e7d4fe80cea6c 100755
--- a/userspace/rootfs_override/etc/init.d/snmp
+++ b/userspace/rootfs_override/etc/init.d/snmpd
@@ -16,18 +16,31 @@ start_counter() {
 }
 
 start() {
+    echo -n "Starting snmpd daemon: "
     # Log to syslog at daemon level. And log source address (-a)
-    snmpd -Lsd -p $SNMP_PID -a -c $SNMP_CONF
-    start_counter
+    start-stop-daemon -q -p $SNMP_PID -S \
+		--exec /usr/sbin/snmpd -- -Lsd -p $SNMP_PID -a -c $SNMP_CONF
+    ret=$?
+    if [ $ret -eq 0 ]; then
+	start_counter
+	echo "OK"
+    elif [ $ret -eq 1 ]; then
+	echo "Failed (already running?)"
+    else
+	echo "Failed"
+    fi
 }
 
 stop() {
-    if pidof snmpd > /dev/null; then
-	echo -n "Stopping snmpd: "
-	start-stop-daemon -K -q -p $SNMP_PID
+    echo -n "Stopping snmpd: "
+    start-stop-daemon -K -q -p $SNMP_PID
+    if [ $? -eq 0 ]; then
 	echo "OK"
+    else
+	echo "Failed"
     fi
 }
+
 restart() {
     stop
     start
diff --git a/userspace/rootfs_override/etc/init.d/syslogd b/userspace/rootfs_override/etc/init.d/syslogd
index 06db86d540ce732d72624ef392946e267385f2d5..875bbe4351369fd361642872e6bf84741ae4be79 100755
--- a/userspace/rootfs_override/etc/init.d/syslogd
+++ b/userspace/rootfs_override/etc/init.d/syslogd
@@ -17,9 +17,17 @@ start() {
     # Check the configuration file: if there's no target, don't run the thing.
     if ! grep -q '^##.*remote-host' /etc/rsyslog.conf; then
 	echo -n "Starting rsyslog: "
-	/usr/sbin/rsyslogd
-	start_counter
-	echo "OK"
+	start-stop-daemon -q -p /var/run/rsyslogd.pid -S \
+		--exec /usr/sbin/rsyslogd
+	ret=$?
+	if [ $ret -eq 0 ]; then
+	    start_counter
+	    echo "OK"
+	elif [ $ret -eq 1 ]; then
+	    echo "Failed (already running?)"
+	else
+	    echo "Failed"
+	fi
     else
 	echo "Not starting rsyslog: no target host selected"
 	# avoid SNMPd complaints about lack of start counter file
@@ -28,12 +36,15 @@ start() {
 }
 
 stop() {
-    if pidof rsyslogd > /dev/null; then
-	echo -n "Stopping rsyslog: "
-	start-stop-daemon -K -q -p /var/log/rsyslog.pid
+    echo -n "Stopping rsyslog: "
+    start-stop-daemon -K -q -p /var/run/rsyslogd.pid
+    if [ $? -eq 0 ]; then
 	echo "OK"
+    else
+	echo "Failed"
     fi
 }
+
 restart() {
     stop
     start
diff --git a/userspace/rootfs_override/etc/init.d/wrs_auxclk b/userspace/rootfs_override/etc/init.d/wrs_auxclk
index 7c99c3bbca98bbf1630f1503348bcba9751ade26..cf6c88a7c630237463c896e56a20e8a6ed7b7bff 100755
--- a/userspace/rootfs_override/etc/init.d/wrs_auxclk
+++ b/userspace/rootfs_override/etc/init.d/wrs_auxclk
@@ -34,10 +34,10 @@ if [ ! -z "$CONFIG_WRSAUXCLK_PPSHIFT" ]; then
 fi
 
 # execute wrs_auxclk
-echo "Configuring external clock clk2"
+echo -n "Configuring external clock clk2: "
 /wr/bin/wrs_auxclk $p_freq $p_duty $p_cshift $p_sigdel $p_ppshift > /dev/null 2>&1
 if [ $? == 0 ]; then
-	echo "External clock clk2 OK"
+	echo "OK"
 else
-	echo "Failed to configure external clock clk2!!!"
+	echo "Failed"
 fi
diff --git a/userspace/rootfs_override/etc/monit.d/dropbear.conf b/userspace/rootfs_override/etc/monit.d/dropbear.conf
index 870b24c82502cbf0eb48cfdfcda9b63b855ee33a..af065e780918c3f5c7eff0c2a576ad783f91cf08 100644
--- a/userspace/rootfs_override/etc/monit.d/dropbear.conf
+++ b/userspace/rootfs_override/etc/monit.d/dropbear.conf
@@ -2,4 +2,4 @@
    start program = "/etc/init.d/dropbear start"
    stop program = "/etc/init.d/dropbear stop"
    if failed host localhost port 22 type tcp then restart
-   if 5 restarts within 10 cycles then exec "/sbin/reboot"
+   if 5 restarts within 10 cycles then exec "/etc/init.d/reboot.sh dropbear"
diff --git a/userspace/rootfs_override/etc/monit.d/hald.conf b/userspace/rootfs_override/etc/monit.d/hald.conf
new file mode 100644
index 0000000000000000000000000000000000000000..543d766d03845f5c7143513808c0431bb658b08a
--- /dev/null
+++ b/userspace/rootfs_override/etc/monit.d/hald.conf
@@ -0,0 +1,4 @@
+ check process wrsw_hal matching /wr/bin/wrsw_hal
+   start program = "/etc/init.d/hald.sh start"
+   stop program = "/etc/init.d/hald.sh stop"
+   if 5 restarts within 10 cycles then exec "/etc/init.d/reboot.sh hald"
diff --git a/userspace/rootfs_override/etc/monit.d/lighttpd.conf b/userspace/rootfs_override/etc/monit.d/lighttpd.conf
index 21e4b36752ac10f0ca08bf5fbe671287ffee26b7..d80bcb573186839e18efe1458e13be5b2746b732 100644
--- a/userspace/rootfs_override/etc/monit.d/lighttpd.conf
+++ b/userspace/rootfs_override/etc/monit.d/lighttpd.conf
@@ -2,4 +2,4 @@
    start program = "/etc/init.d/lighttpd.sh start"
    stop program = "/etc/init.d/lighttpd.sh stop"
    if failed host localhost port 80 type tcp then restart
-   if 5 restarts within 10 cycles then exec "/sbin/reboot"
+   if 5 restarts within 10 cycles then exec "/etc/init.d/reboot.sh lighttpd"
diff --git a/userspace/rootfs_override/etc/monit.d/ppsi.conf b/userspace/rootfs_override/etc/monit.d/ppsi.conf
new file mode 100644
index 0000000000000000000000000000000000000000..2e546ee6775244585cfb3dab25f836775fe7aea9
--- /dev/null
+++ b/userspace/rootfs_override/etc/monit.d/ppsi.conf
@@ -0,0 +1,5 @@
+ check process ppsi matching /wr/bin/ppsi
+   start program = "/etc/init.d/ppsi.sh start"
+   stop program = "/etc/init.d/ppsi.sh stop"
+   if 5 restarts within 10 cycles then exec "/etc/init.d/reboot.sh ppsi"
+   depends on wrsw_hal
diff --git a/userspace/rootfs_override/etc/monit.d/rtud.conf b/userspace/rootfs_override/etc/monit.d/rtud.conf
new file mode 100644
index 0000000000000000000000000000000000000000..301559ca0a057b381624bea4c00567f2b63c594e
--- /dev/null
+++ b/userspace/rootfs_override/etc/monit.d/rtud.conf
@@ -0,0 +1,5 @@
+ check process wrsw_rtud matching /wr/bin/wrsw_rtud
+   start program = "/etc/init.d/rtud.sh start"
+   stop program = "/etc/init.d/rtud.sh stop"
+   if 5 restarts within 10 cycles then exec "/etc/init.d/reboot.sh rtud"
+   depends on wrsw_hal
diff --git a/userspace/rootfs_override/etc/monit.d/snmp.conf b/userspace/rootfs_override/etc/monit.d/snmp.conf
deleted file mode 100644
index c27602227c2b2ba01bfc58427ed3a15564466c63..0000000000000000000000000000000000000000
--- a/userspace/rootfs_override/etc/monit.d/snmp.conf
+++ /dev/null
@@ -1,4 +0,0 @@
- check process snmpd with pidfile /var/run/snmpd.pid
-   start program = "/etc/init.d/snmp start"
-   stop program = "/etc/init.d/snmp stop"
-   if 5 restart within 10 cycles then exec "/sbin/reboot"
diff --git a/userspace/rootfs_override/etc/monit.d/snmpd.conf b/userspace/rootfs_override/etc/monit.d/snmpd.conf
new file mode 100644
index 0000000000000000000000000000000000000000..64633938570c224c1a1ca3fbdd102f74970824eb
--- /dev/null
+++ b/userspace/rootfs_override/etc/monit.d/snmpd.conf
@@ -0,0 +1,4 @@
+ check process snmpd with pidfile /var/run/snmpd.pid
+   start program = "/etc/init.d/snmpd start"
+   stop program = "/etc/init.d/snmpd stop"
+   if 5 restart within 10 cycles then exec "/etc/init.d/reboot.sh snmpd"
diff --git a/userspace/rootfs_override/etc/rcS/S61hald.sh b/userspace/rootfs_override/etc/rcS/S61hald.sh
new file mode 120000
index 0000000000000000000000000000000000000000..e053cc418657034efde4254575cc6721f891606b
--- /dev/null
+++ b/userspace/rootfs_override/etc/rcS/S61hald.sh
@@ -0,0 +1 @@
+../init.d/hald.sh
\ No newline at end of file
diff --git a/userspace/rootfs_override/etc/rcS/S61ppsi.sh b/userspace/rootfs_override/etc/rcS/S61ppsi.sh
new file mode 120000
index 0000000000000000000000000000000000000000..8aaeeadb998c77940c428f426b1da70c7627dee5
--- /dev/null
+++ b/userspace/rootfs_override/etc/rcS/S61ppsi.sh
@@ -0,0 +1 @@
+../init.d/ppsi.sh
\ No newline at end of file
diff --git a/userspace/rootfs_override/etc/rcS/S61rtud.sh b/userspace/rootfs_override/etc/rcS/S61rtud.sh
new file mode 120000
index 0000000000000000000000000000000000000000..33886d42571d177d16fdaa3c06db677d20bcb3cb
--- /dev/null
+++ b/userspace/rootfs_override/etc/rcS/S61rtud.sh
@@ -0,0 +1 @@
+../init.d/rtud.sh
\ No newline at end of file
diff --git a/userspace/rootfs_override/etc/rcS/S80snmp b/userspace/rootfs_override/etc/rcS/S80snmp
deleted file mode 120000
index 4adfeb2f0456efdf1a10b70e3e75089f6acade51..0000000000000000000000000000000000000000
--- a/userspace/rootfs_override/etc/rcS/S80snmp
+++ /dev/null
@@ -1 +0,0 @@
-../init.d/snmp
\ No newline at end of file
diff --git a/userspace/rootfs_override/etc/rcS/S80snmpd b/userspace/rootfs_override/etc/rcS/S80snmpd
new file mode 120000
index 0000000000000000000000000000000000000000..f270432a6f44a88ae7af06b41115fa87391a578b
--- /dev/null
+++ b/userspace/rootfs_override/etc/rcS/S80snmpd
@@ -0,0 +1 @@
+../init.d/snmpd
\ No newline at end of file
diff --git a/userspace/rootfs_override/wr/bin/apply_dot-config b/userspace/rootfs_override/wr/bin/apply_dot-config
index 1e8bd49237ba41e34a2442279873e1818879e910..b1608f4a34af71761162d29859fa140c64b7680f 100755
--- a/userspace/rootfs_override/wr/bin/apply_dot-config
+++ b/userspace/rootfs_override/wr/bin/apply_dot-config
@@ -80,14 +80,6 @@ set | tr -d \' | grep CONFIG_SNMP | sed 's/=/ /' | while read varname value; do
 done
 copy_conf /wr/etc/snmpd.conf
 
-# Fix log values
-cp /wr/sbin/start-daemons.sh.in $T
-set | tr -d \' | grep CONFIG_WRS_LOG | sed 's/=/ /' | while read varname value; do
-    if [ -z "$value" ]; then continue; fi
-    sed -i "/$varname/ s,$varname,$value," $T
-done
-copy_conf /wr/sbin/start-daemons.sh
-
 # Select a ppsi configuration file
 if [ "$CONFIG_PTP_PORT_PARAMS" = "y" ]; then
     /wr/bin/assembly_ppsi_conf.sh
diff --git a/userspace/rootfs_override/wr/sbin/start-daemons.sh.in b/userspace/rootfs_override/wr/sbin/start-daemons.sh.in
deleted file mode 100755
index c01cc9bf34b1b0fefc815ce9cb8645efc9f2455a..0000000000000000000000000000000000000000
--- a/userspace/rootfs_override/wr/sbin/start-daemons.sh.in
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/ash
-echo "Starting up WR daemons..."
-
-# The following variables are modified at build time, with Kconfig values
-LOG_HAL=CONFIG_WRS_LOG_HAL
-LOG_RTU=CONFIG_WRS_LOG_RTU
-LOG_PTP=CONFIG_WRS_LOG_PTP
-
-# The loop below is a little intricate because of the eval, but I need it this
-# to have pipe and file as both supported.
-# Also, to have both stdout and stderr, we need "2>&1" before the pipe, but
-# after the file redirection (why????)
-
-for n in HAL RTU PTP; do
-    # if empty turn it to /dev/null
-    if eval test -z "\$LOG_$n"; then LOG_$n="/dev/null"; fi
-    # if a pathname, use it
-    eval value="\$LOG_$n"
-    if echo "$value" | grep / > /dev/null; then
-	eval LOGPIPE_$n=\" \> $value 2\>\&1 \";
-	continue;
-    fi
-    # not a pathname: use verbatim
-    eval LOGPIPE_$n=\" 2\>\&1 \| logger -t wr-switch -p $value\"
-done
-
-export WR_HOME="/wr"
-
-eval $WR_HOME/bin/wrsw_hal    $LOGPIPE_HAL \&
-eval $WR_HOME/bin/wrsw_rtud   $LOGPIPE_RTU \&
-eval $WR_HOME/bin/ppsi        $LOGPIPE_PTP \&
-
-# ensure we receive UDP PTP frames, since ppsi supports UDP too.
-$WR_HOME/bin/rtu_stat add 01:00:5e:00:01:81 18 0 &
-
diff --git a/userspace/rootfs_override/wr/sbin/startup-mb.sh b/userspace/rootfs_override/wr/sbin/startup-mb.sh
index 55753f35ed0ff94bfa004286a95a2a1c0f19c089..1a5712c50cfb9a9c573c1a2c84fb7163ae103b31 100755
--- a/userspace/rootfs_override/wr/sbin/startup-mb.sh
+++ b/userspace/rootfs_override/wr/sbin/startup-mb.sh
@@ -62,5 +62,4 @@ insmod $WR_HOME/lib/modules/wr-nic.ko macaddr=$val
 insmod $WR_HOME/lib/modules/wr_rtu.ko
 insmod $WR_HOME/lib/modules/wr_pstats.ko pstats_nports=18
 insmod $WR_HOME/lib/modules/wr_clocksource.ko
-$WR_HOME/sbin/start-daemons.sh