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.