The Shepherd 1.0.0 released: the init system written in Scheme
1–5 of 5 posts
Re: The Shepherd 1.0.0 released: the init system written in Scheme
#2Re: The Shepherd 1.0.0 released: the init system written in Scheme
#3The other init systems I'm most familiar with are systemd and sysvinit. Systemd is nice and easy from a user's perspective, but it's not all that flexible if you want to do something systemd doesn't already support. Sysvinit on the other hand is minimal and flexible, but I have no desire to write a classic init script at all.
Shepherd is somewhere in between. It's extremely flexible (for example Guix added a containerization feature to use in Shepherd services, and due to Shepherd's design that's just a module within Guix; it doesn't have to go in upstream Shepherd) and yet writing services is pretty simple.
Re: The Shepherd 1.0.0 released: the init system written in Scheme
#4Shepherd is one of those things that put me off a little bit when I first started using Guix (just because I wasn't used to it yet), but I've really grown to appreciate it. The other init systems I'm most familiar with are systemd and sysvinit. Systemd is nice and easy from a user's perspective, but it's not all that flexible if you want to do something systemd doesn't already support. Sysvinit on the other hand is m…
The services-in-containers extension you mention is a good example of that: it is implemented on the distro side (in Guix) without any modification to the Shepherd itself. The good thing is that the distro is in a good position to determine how to set up that container since it knows about the package being run, its configuration, and so on.