At the level I care about, which is “I want this daemon to start when I boot up the computer”, systemd is much better. I can write a ~5 line unit file that will do exactly that, and I’ll be done.
With init, I needed to copy-paste a 50-line shell script that I don’t really understand except that a lot of it seemed to be concerned with pid files. Honestly, I fail to see how that’s better…
The only arguments against I have seen so for is systemd does a lot more than just handing system startup (systemd-resolved is one such example) and files that was previously stored as text now require systemd’s own tool to read (journalctl?).
So not the actual startup function, just everything else.
Based on the video someone posted, it’s not very portable either.
I feel that little part of my brain that wants to add yet another standard itching. Easily starting something at boot is good, but I don’t see why that has to come with loss of modularity.
Mmm I have a general dislike of systemd because it doesn’t adhere to the “do one thing and do it well” approach of traditional Unix systems.
It’s a big old opaque blob of software components that work nicely together but don’t play well with others, basically.
Edit: but it solved a particular set of problems in serverspace and it’s bled over to the consumer Linux side of things and generally I’m ok with it if it simplifies things for people. I just don’t want a monoculture to spring up and take root across all of Linux as monocultures aren’t great for innovation or security.
I see way more posts that are pro-systemd than anti these days, so I think you might be tilting at windmills a bit.
I would love to think about systemd less, but I’ve worked with it professionally since a year or so before Debian switched while I was an intern working in embedded. I got to see the flame wars and shaped my opinion of systemd by wrestling with its growing pains. Writing your own service files and working with DBus was ass back then, and while it has gotten better, my patience with it has diminished. In the end the frustration was enough that after I ditched windows, systemd was the next to go.
That would be the end of it, but other programs keep growing annoying systemd dependencies or their projects get swallowed up by the systemd ecosystem entirely. I was so excited at the start to work with the parallel execution and dependency management, but the number of times systemd broke something, swallowed up the output, and then corrupted its own journal and lost the logs really turned me against it.
I don’t know, I’m not a power-user so systemd is just a thing in the background, I don’t have much opinions over it.
I think you might be tilting at windmills a bit.
No systemd love or hate for me, as for the meme, I respect both opinions (I’m still learning btw) but don’t particularly like proselitjzers. Sharing an opinion and experiences (like you did) is fine and often informative, what I don’t like are people (expecially on lower-quality places like 4chan) spamming stuff like “systemd is the devil and killed my child” or “systemd weights more than the Linux kernel” I guess I need to make up my mind, haven’t interacted with the OS at a low enough level yet.
I understand what you mean. If you are on the fence and not super interested in init systems, you can pretty easily get by with systemd without thinking about it. Most desktop environments have tools to manage user services in easy GUI’s, and you can find guides for anything more advanced you want to accomplish with them usually.
If you want to dive in though, systemd is a great init system to learn. Nowadays learning systemd is a lot less of a moving target, and it’s in use virtually everywhere so the knowledge is valuable. It’s also fairly well documented at this point, which is great for learning how it works.
My personal advice if you want to go that path is to just open up some service files. There are lots of interesting examples in /lib/systemd/system Systemd service files are just plain text, and pretty straightforward to read. Its divided into nice sections, and naming is pretty straightforward (Or the systemd brainworms are really in deep). Look for names you recognize or programs you use. Especially ones you are familiar with on the command line. I don’t recommend changing them to start, especially in the system directory, just open a couple and you should quickly start seeing the connections between what they are trying to accomplish and whats in each file. Then if you see anything you don’t understand or peaks your curiousity check the documentation. Once you’re ready try writing one of your own for something in the usr service directory. No pressure though, its not necessarily essential knowledge
Add comment