Personally, while I do think that systemd's scope might have been a bit too ambitious, I do find it easier than something like Upstart
Personally, while I do think that systemd's scope might have been a bit too ambitious, I do find it easier than something like Upstart
* http://jdebp.uk./FGA/launchd-on-bsd.html
systemd was not a port of anything. And its immediate inspiration was Upstart, the system that Fedora was using at the time, and whose drawbacks provoked Lennart Poettering et al. to start working on systemd.
(Interestingly, Upstart itself was inspired by the drawbacks of porting launchd.)
Its motivation was perhaps upstart's shortcomings, but systemd was definitely inspired by the design of launchd and that was repeatedly and explicitly mentioned in Lennart's very first blog post introducing it:
> But first, let's clear a few things up: is this kind of logic new? No, it certainly is not. The most prominent system that works like this is Apple's launchd system ...
> For socket activation we support full compatibility with the traditional inetd modes, as well as a very simple mode that tries to mimic launchd socket activation and is recommended for new services.
> More importantly however, it is also our plan to experiment with systemd … to make it the ideal session manager… The problem set of a session manager and an init system are very similar… Using the same code for both uses hence suggests itself. Apple recognized that and does just that with launchd. And so should we…
> Writing Daemons:: … The list above is very similar to what Apple recommends for daemons compatible with launchd. It should be easy to extend daemons that already support launchd activation to support systemd activation as well.
> we took a lot of inspiration from Upstart's code-base
... which they actually did and continued to do, from observation. There were significant discussions amongst the systemd people involving the way that things worked with Upstart, including (for just three examples out of the many over the years) having to work like Upstart with respect to putting the X server on the first KVT, Upstart's handling of SIGPWR to process #1, and eliminating /dev/initctl because it was not really utilized in Upstart.
* https://news.ycombinator.com/item?id=12772915
* https://lists.freedesktop.org/archives/systemd-devel/2016-Ju...
* https://lists.freedesktop.org/archives/systemd-devel/2015-Se...
In comparison, there was almost zero similar consideration of launchd. The idea that launchd inspired systemd is a myth, not borne out by what M. Poettering explicitly wrote was the inspiration nor borne out by the evidence of what the systemd people did down the years.
Plus, there’s always the BSDs, which don’t use systemd but still feel very clean and cohesive.
I remember liking how easy it was to set up startup scripts in FreeBSD, so I think I like it? I'll admit I haven't used it as much as systemd or Upstart, so I can't give a strong opinion.
Because I've never been forced to use launchd. Well, you could say that I've never been forced to use systemd either but that's kinda how it feels when distros swap it out for you and things start depending on it.
Guess what? I'd be furious if the distros I use forced me onto launchd all of a sudden.