pdario wrote:If I just put the start command in rc.local, I expect the service not being stopped properly at shutdown, what do you think?

If will not be stopped through the startscript, but it will get a SIGTERM signal. (And if it's still there a few seconds later, it will get a SIGKILL. Then the box will just poweroff/reboot).
For many services (daemons in Linux speak) sending a SIGTERM *is* the proper way, which is also invoked by the startscript.

No. It's not a firmware specific file, and it can be handled by update-rc, so you can just use it.

I recommend to make a backup of the file, use update-rc to add your daemons, and then have a look at the resulting file. If you don't trust it, you can put back your backup before rebooting.
Acutally this is a nicer way than the SystemV way, where it's much more difficult to make a backup of the current startup configuration.

Why do you think it's in runlevel S? You can't read the current runlevel you say.

It's normal that all scripts in runlevel S are executed, followed by all scripts from the target runlevel. However, of course it's possible that there is a blocking script, which stops the 'runlevel pump' (my word, don't know the canonical word), so the the current runlevel isn't stored.
ps -A might show if some lingering startscript is running.