Most of my Unix/Linux init programs will manage the daemons for you and restart them. Look into placing your service in /etc/inittab. Or you might be using Upstart or systemd.
All of those programs run as PID 1 and it's their job to watch and restart system processes.
From your Busybox tag, I might assume you're running an embedded system. On those, the System V style init scripts with all of their shell scripts are overkill. Probably rip all that out and replace it with a entries in /etc/inittab or upstart the systemd jobs.
To know about Linux join the Linux training