For reference, that init.d solution is extremely dangerous, speaking from experience ;)
init scripts are run sequentially, each init scripts MUST terminate quickly AND leave no child process, otherwise the init sequence is frozen.
If there is a while() loop in an init script, it will freeze the init sequence. If an init script starts another program without daemonizing, it will freeze the init sequence.
High chances are that you missed either or both of that in the solution. The init script will work fine while you test locally in the shell but it will blow up startup on the next reboot.
init scripts are run sequentially, each init scripts MUST terminate quickly AND leave no child process, otherwise the init sequence is frozen.
If there is a while() loop in an init script, it will freeze the init sequence. If an init script starts another program without daemonizing, it will freeze the init sequence.
High chances are that you missed either or both of that in the solution. The init script will work fine while you test locally in the shell but it will blow up startup on the next reboot.