OpenELEC/OpenELEC.tv — pull request #1855 by dagwieers (2013-02-06 21:29:01+00:00)
Title: When init starts daemons through a shell script, replace the shell altogether

A few daemons are being started from init through a shell script. Since the daemon does not "deamonizes" properly, it's been put in the background from the shell by using ( ... ) &, however this leaves a lingering shell that serves no purpose. This patch improves this situation.

The situation before this change looked like:

```
init-+-Xorg
|-avahi-daemon
|-console-kit-dae-+-62*[{console-kit-da}]
| `-{gdbus}
|-dbus-daemon
|-eventlircd
|-klogd
: |-init---atvclient
|-init---connmand
: |-init---ratpoison
: |-init---udevadm
|-polkitd---{gdbus}
|-rpcbind
|-sshd---sshd---sh---pstree
|-syslogd
|-systemd-udevd
: |-tvheadend.start---tvheadend---12*[{tvheadend}]
|-udisks-daemon-+-udisks-daemon
| |-{gdbus}
| `-{gmain}
|-upowerd-+-{gdbus}
| `-{gmain}
|-wpa_supplicant
`-xbmc.bin---17*[{xbmc.bin}]
```

After this change, it looks like:
```
init-+-Xorg
: |-atvclient
|-avahi-daemon
|-console-kit-dae-+-62*[{console-kit-da}]
| `-{gdbus}
|-dbus-daemon
|-eventlircd
|-init---connmand
|-klogd
|-polkitd---{gdbus}
: |-ratpoison
|-rpcbind
|-sshd---sshd---sh---pstree
|-syslogd
|-systemd-udevd
: |-tvheadend---12*[{tvheadend}]
: |-udevadm
|-udisks-daemon-+-udisks-daemon
| |-{gdbus}
| `-{gmain}
|-upowerd-+-{gdbus}
| `-{gmain}
|-wpa_supplicant
`-xbmc.bin---17*[{xbmc.bin}]
```
Only for connmand this is not easily done since the shell loops and restarts connmand. In different circumstances /etc/inittab would respawn the process.