[Nix-dev] Is systemd a benefit or a liability?

Shea Levy shea at shealevy.com
Sun Oct 19 15:21:23 CEST 2014


On Sun, Oct 19, 2014 at 03:09:15PM +0200, Eelco Dolstra wrote:
> Hi,
> 
> On 19/10/14 13:30, Nathan Bijnens wrote:
> 
> > It's not all quiet at other Distro's, some Debian developers are considering
> > forking Debian if Debian switches to SystemD: http://debianfork.org/
> > 
> > I like some of the features of SystemD; on the other hand it makes porting Nix
> > very hard to Non-linux. 
> 
> To be clear: Nix has no dependency whatsoever on systemd. NixOS obviously does,
> but since it's a Linux distribution, it doesn't have to be portable to non-Linux
> systems.
> 
> > I think it makes sense to have a abstraction in Nix for defining services and
> > timers; by default it uses SystemD, but it shouldn't be to hard to have other
> > implementations (like plain cron, ...). This would make Nix(OS) as future proof
> > as possible. 
> 
> Defining services in an abstract way sounds nice. NixOS had a "jobs" option that
> was intended to do just that. Unfortunately, it's not really achievable because
> the semantics of the init system always leak through (e.g. Upstart's dependency
> model is totally different from systemd's). Worse, you would have to restrict
> yourself to the lowest common denominator of all init systems. So no socket
> activation, startup notification (like sd_notify), automatic cleanup of dangling
> processes via cgroups, and so on.
> 

Actually, with programmatic configuration like NixOS you simply don't
*need* all of these fancy features in the init system. Instead each
service can take care of these things itself. See our (currently
experimental and very much under development) deployment specification
defnixos [1].

FWIW, I agree with Michael Raskin that both sides are being hyperbolic
here. I've had some real frustrations caused by systemd's integration of
everything, but in many ways it's also been a great improvement over
what we had before. I think there is nothing I'd consider 'great' in the
sphere of general-purpose init daemons, and systemd may very well be the
best for personal machines, but ultimately I'm not convinced
general-purpose is the right way to go for something like NixOS.

~Shea

[1]: https://github.com/zalora/defnix/tree/master/defnixos

> 
> -- 
> Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev


More information about the nix-dev mailing list