systemd suffers from the lack of systemic design, but it's still way better than the pile of scripts that it replaced.
If by "every program" you mean "your init system", then sure. For example, OpenRC predates systemd by several years, can manage both forking and non-forking services, [0] and supervise non-forking programs with no PID files required.
[0] It even handles both s6 and systemd-style socket-based readiness notification.
I was strongly disappointed and shocked when I realize that Lennart was not able to write something like "my solution is better or comparable to daemontools, because".
Facepalm^2. Do you remember the origin story of upstart and systemd?
Daemontools attempted to do similar things, but the only available tool for it was process groups versus cgroups. It also missed the service activation support.
https://github.com/openbsd/src/blob/master/usr.sbin/rcctl/rc...
Then you got the initialization script
https://github.com/openbsd/src/blob/master/etc/rc
Service file can be very small
https://github.com/openbsd/src/blob/master/etc/rc.d/httpd
Powered by
https://github.com/openbsd/src/blob/master/etc/rc.d/rc.subr
Also daemon(3) for running as a system service
https://man.openbsd.org/daemon.3
And no need to track pid. It uses pgrep with the flags and the program name by default. I believe OpenRC does the same.
https://github.com/openbsd/src/blob/f5d74fd467fccdfc60b450a7...