Calling the kodi-xxx target in ExecStart= was not actually the key to
fixing the shutdown bugs in 847b6ec65. Adding the ExecStop= calling
killall to the exact target was needed.
This commit restores the call to kodi-standalone to allow the
"RestartApp" built in to work again and adds the key ExecStop= with
killall.
Direct call to kodi-xxx in ExecStart= allows direction of kill signal to that
rather than to kodi-standalone wrapper. This allows the kill signal to hit
the indented executable. As well, using killall in the ExecStop= allows for
synchronous stopping and for kodi to do shutdown housekeeping tasks such as
saving settings, stopping services (web, zeroconf, etc.) and unloading things.
Use the same dependencies and their order in both systemd units.
Add additional units of services that kodi uses.
Don't use "Requires=", kodi can run without a network connection.
Export WINDOWING=x11 in kodi.service to skip the autodetection that /usr/bin/kodi-standalone performs.
Give kodi-gbm.service the privileges of input group, this allows removing the kodi user from that group's membership since kodi.service does not need it.
Improve service description.
Use graphical.target, Xorg and graphical applications should only be started in graphical.target not in multi-user.target.