Transcript:
Two panel meme.
Top panel: Woman in the front seat of a car screaming at a child in the rear seat. She’s saying “Why can’t you just shutdown?”
Bottom panel: A child screaming “A stop job is running for Session c2 of user … (1:30 / no limit)”


If it was really the program’s fault, why doesn’t it happen when I switch to sysvinit? (or maybe openrc, I haven’t tried that one)
Because you didn’t bother fixing the underlying issue but got lucky.
Or these other inits are more brutal in their shutdown procedure, but I doubt that.
What “underlying issue”? The one in systemd?
Everything works correctly (starting, shutting down under openrc / under sysvinit / manually / with killall)… except specifically systemd.
possibly they ship a bad systemd unit config for their package
Not onl that but they usually remove the init script as well, so unless you go for archives you no longer have a sane mechanism for starting and stopping the service.
Fortunately Debian has a
orphaned-init-scriptspackage that can help alleviate that pain, as you can also use those scripts (or even better, openrc scripts) as skeletons to replace systemd service units.