diff --git a/package/gluon-radvd/files/etc/init.d/gluon-radvd b/package/gluon-radvd/files/etc/init.d/gluon-radvd
index 5e0f596251201be58776327238fffe5a8975b73e..d33005e48432da2e28e1b9b022dd9d7b73c51614 100755
--- a/package/gluon-radvd/files/etc/init.d/gluon-radvd
+++ b/package/gluon-radvd/files/etc/init.d/gluon-radvd
@@ -1,17 +1,15 @@
 #!/bin/sh /etc/rc.common
 
+USE_PROCD=1
 START=50
 
-SERVICE_WRITE_PID=1
-SERVICE_DAEMONIZE=1
-
-
-start() {
+start_service() {
   [ -x /lib/gluon/radvd/arguments ] && {
-	service_start /usr/sbin/uradvd $(/lib/gluon/radvd/arguments)
+    procd_open_instance
+    procd_param command /usr/sbin/uradvd $(/lib/gluon/radvd/arguments)
+    procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
+    procd_set_param netdev br-client
+    procd_set_param stderr 1
+    procd_close_instance
   }
 }
-
-stop() {
-	service_stop /usr/sbin/uradvd
-}