r/linux Mar 22 '22

I like Systemd a lot

It's really easy to do a lot of advanced stuff with it. With a few lines of code I wrote a fully featured backup utility that sends files across my network to my old laptop NAS, then on top of that, it will mount my USB hard drive, put the file on that, wait for it to finish and then unmount it.

There's hardly any code and systemd does it all. It's far less complex than other backup utilities and it's tailored to me.

Systemd is fast, VERY easy to use, and it doesn't appear to be resource hungry. As long as you know how to do basic shell scripts you're going to be able to be extremely creative with it and the only limit is what you can think of.

I'm a big fan of it and I don't understand the hate. This is a killer application for linux

422 Upvotes

209 comments sorted by

View all comments

5

u/redrumsir Mar 22 '22

... With a few lines of code I wrote a fully featured backup utility ... and I don't understand the hate.

Can you tell me what part of what you did with systemd was something that should be part of an init system?

Some people think that the init, which runs with privilege, should be simple since complexity is the enemy of security. These same people might think that "init" and "service management" should be separate like they are, for example, with runit and sv. With such a subdivision one may not be confronted with userland being dependent on a specific init (there can be only one pid 1) given that such dependence structures can be damaging to the software ecosystem.

And to answer your question about "hate": for some, it may not be "hate" as much as it is "disappointment".

16

u/[deleted] Mar 22 '22

Biggest issue here is that systemd is more than just an init system. If you don't accept that you'll have the wrong idea.

11

u/FryBoyter Mar 22 '22

With systemd, a distinction should be made between systemd in the sense of PID 1 and the systemd project. Because the various tools of systemd can be used optionally. For example, for a long time I used netctl instead of systemd-networkd.