having to manually deal with daemons was so painful, to the point of being exoteric.
* multiple java based apps wrote pid in java which meant few secs after JVM started, so calling start -> status made status return app is not running, which tripped some tools
* mysql wrote pid in /var/run which was (at that time, most moved it to tmpfs finally, and that is also easier with systemd) not removed on stop. and on start it only checked whether PID existed in system, not what the PID was. So sometimes if some other app happened to get same PID as mysql on previous boot, mysql would not start on boot
* there was no checks on whether stuff app needs is mounted so some volume failing to mount could make app start with empty dir and lead to a mess.
It has problems. But it's also a massive improvement.