I feel like, at this point, it has more than proved itself as a general purpose desktop scheduler. But there are situations where you would want something different but a lot of software depends on it anyway.
I also kinda don’t understand the hate toward the project itself, other than hearing some of the technical guidance on it has been a bit arrogant in the past or something. Sounds like sily open source drama to me honestly.
You’re 10 years too late. We’re all on the systemd bandwagon today.
OpenRC
I’m using Devuan on my servers, dont trust systemd there.
But I live with systemd on the desktop because it’s “just” the desktop and there’s less logs to analyze.
I’ve seen some modern hate 🧐
Right, but is it just residual? This topic is interesting but mostly in a historical way now. Of course if you want drama, there’s always drama to be found.
I mostly hear it from arch users
I don’t know a single admin/devops person working in the field who gives much of a shit anymore, it’s just part of the landscape at this point.
I simply don’t care. I am in a position lucky enough that I can trust distro maintainers, without the need to care about the details, as long as my system behaves as I expect, satisfying my requirements of reliability and stability
Unless you want to play games. PulseAudio sucks for games.
Same, I interact with it so rarely that it could work with fairies and unicorns for all the difference it makes to me.
I don’t know what people do with their machines that they keep poking at the damn thing anyway. For the most part I stay out of systemd’s way, it stays out of mine and we’re both happy.
it could work with fairies and unicorns
It’s C code. There’s no fairy dust or rainbow magic involved. You can check the commit logs…
rapid typing of
git rebase
andgit push --force
commands to alter the code history…
I use runit on Artix. I wasn’t around for the init wars, but dove into the rabbit hole of Debian email exchanges, where lots of shade was thrown around because of suspicions over corporate influence on Linux, and Canonical dropping the ball because of their Licensing on their competitor init, Upstart.
I reviewed videos of Poettering going on about it, adamently placing systemd as the hill he was willing to die on.
I read the Torvaulds email complaining about Kay Sievers being an asshole. Looked at how Kay Sievers famously refused to fix early boot problems with systemd. Read Laurent Bercot’s technical break down of why even from a software design level, systemd should be called into question.
Its all interesting, and on my home desktop, I decided to only use Artix, Void, Gentoo, or Devuan over any of the others for as long as I can.
At work, I don’t care. Do I wish that runit or s6 was more predominant and widely used? Absolutely. Imho both init systems are just more minimal and their implementations are so solid, they are two of the very few pieces of software I can say are finished. No notes, no new features, and because of the minimal attack surface, barely any security patches have been necessary.
Due to their following of the UNIX Philosophy, both runit and s6’s source code can be reviewed in an afternoon, as opposed to systemd which has taken me considerably more time to parse through (though I’ll admit systemd has some decent comments in their code that helps out).
But at work, while I have my preferences and opinions, the systemd debate isn’t even close to the top of my list on arguments I’d like to have at the work place.
On Lemmy otoh, lol. 😁
Pros: Really useful AIO program that does everything Cons: Really useful AIO program that does everything
Great example:
Systemd makes it very easy to bring up DNS with systemd-resolved, and it bridges a gap from the old resolv.conf file and newer DNS standards n stuff.
But then it also means that any alternative DNS clients have to tell resolvd to go away if they want to run, or often times make a systemd service to autostart with systemd and ensure it works perfectly with every possible systemd setup.
There’s nothing inherently wrong with this method of having a centralized AIO thing that handles a a lot of stuff for you, but lots of early Linux people preferred the hardcore KISS principle and found it very beneficial to have everything neatly separated and modular with the service manager’s job to only start and stop services.
Overall, systemd has been remarkably (and relatively) stable and beneficial which people thought would be impossible back when it became initially popular.
I don’t have anything against systemd that is until I tried void linux for the first time. The working of runit seemed very simple and efficient compared to the complexity of systemd.
I still don’t hate systemd, but I just wish it was simpler.
To be honest
systemd
is much simpler to me. Create a unit file, define what it depends on, accesses, etc. And you are done.And most importantly you don’t have to deal with things like environment variables or other session state leaking into your startup scripts as you had with all the init script based init systems.
I seriously do not miss services that worked when starting them from an ssh session but did not work on startup (because e.g. PATH had fewer directories).
That too. I completely forgot about that.
I’d argue systemd has bad, borderline incorrect design. I didn’t like SysV because it caused inconsistencies and hard to understand processes. systemd fixed the inconsistencies but the rest is sort of hacked together bullshit that developers play wackamole with. That hackery is the reason it can’t be used in Docker for example. It has a complicated parser for a language that’s basically a DSL that doesn’t really solve the problem of complexity for the user. It requires a whole slew of random non-sense to work and it feels like stars have to align perfectly for things to function. It encourages bad behavior like making everything socket activated for literally no reason.
Compared to SysV, I’ll take systemd. I don’t find it ideal at all though. It’s serviceable… much like how Windows services are serviceable. S6 is I think what the ideal init would look like. I’m more impressed with it’s execline and utilities suite but that’s another story.
The only thing I think systemd did right is handling cgroups.
OpenRC handles cgroups too AFAIK
If you think you need systemd in a container, then you don’t understand containers
Container is not a chroot
Container is not a VM
Some docker containers come with systemd. Of note, the RedHat ubi8-init and ubi9-init containers. Not that they’re wonderful and perfectly open, but that it is possible and available.
Struggling to think of what purpose systemd would serve in docker…
ya see, when i ssh into a server and i run some commands, sometimes i mess up, see, and i wanna reboot to get the system back to a known state, right
and even if the system is in an unknown or invalid state, right,
i don’t wanna wait half a bloody hour for systemd to get tired of waiting for 1m30s countdowns and actually bounce the damn machine, if it bounces at all
and i can’t just hold the power button, see, because i’m 2000 miles away from the bloody box
(I did not make that number up, by the way. I once has a hard drive get hot removed while it was mounted, couldn’t umount it so I had to reboot, and it confused systemd so bad it took 27 minutes to shut down)
EDIT: aw come on, are you really gonna downvote without leaving a reply?
Check out systemd’s userspace reboot feature, they implemented it to avoid long reboot times on server hardware.
That version is too new to be in any stable server distro yet.
Ah, fair enough. I’ve used it on my Arch boxes since shortly after release.
how is this any diffrent from SysV scripts hanging and preventing a reboot that way…
you are blaming SystemD for an issue not part of SystemD, but a generic computing issue…
and yes, you can still just hard reboot your system with SystemD as @[email protected] has point out…
Raising Skinny Elephants Is Utterly Boring.
It can be done remotely, even over SSH by writing to
/proc/sysrq-trigger
I was wondering why my fedora install took ages to shutdown sometimes and the little googling I did got me nothing. Do i hate systemd now?
I mean. You can fix those with a bit of effort.
Do I hate systemd now?
No, because that’s not specific to systemd.
I can quite clearly remember the long shutdown times back when Ubuntu was still using Upstart.
Generally speaking, long shutdown times are an indication of a system issue (e.g. HDD going bad or slow network) or just scripts being written poorly, and could be worked around by changing the timeout value. Systemd defaults to 90 seconds, but you can change that to 30 secs or lower.
Heads up that you can hit [escape] key while booting or shutting down in order to see the console and tell what the computer is actually doing.
I want init 6 back! It’s a reflex to type that.
Does too much for one tool (against unix philosophy) and has poor interop with other tools (binary logfiles).
Does too much for one tool (against unix philosophy)
This tired, old argument needs to die already.
Do you use browser extensions? That breaks unix philosophy too.
Adblock does only one thing: blocks ads. Doesn’t sound phylosophy-breaking.
You just compared a browser extension and an init system that takes proc id 1. The unix philosophy is about what runs as processes at the system level.
The unix philosophy is about what runs as processes at the system level.
I don’t know what you mean by “system level” (
cat
is userspace) but I don’t believe there is any clarification about what kind of applications should apply to the unix philosophy or not. It doesn’t say that applications “should do one thing and do it well only if it is a system process or terminal based program built for purely shell environments.”Also, if the argument was exclusively about OS processes, dbus should be in the firing line of everyone in the anti-systemd camp too. That never gets the same level of hate.
The unix philosophy is old and, while nice to have, is insufficient to fully address the needs of the modern world. It’s not as simple today as it was in the 1960s and 70s and we need to embrace change to progress.
I’m honestly not sure what you’re talking about here. The unix philosophy is something informal that applies to compiled utilities that run usually in a bin/ directory. The philosophy isn’t attempting to apply to all software that exists and certainly doesn’t intend to apply to browsers or browser extensions.
Dbus does only one thing: relays messages.
as it was in the 1960s and 70s
You will be surprised, but Turing machine was created during WW2, and we still say turing-complete today.
You just compared a browser extension and an init system that takes proc id 1. The unix philosophy is about what runs as processes at the system level.
Linux User when their program does more than IO text streams:
Piping xz into tar is not text stream
Btw. The Linux kernel does more than one thing. But monolithic kernels are much better for small student projects that won’t be relevant anymore, when Gnu Hurd comes out
Monolithic kernels are also generally more performant, compared to micro-kernels, it turns out. A bit counter-intuitive at first but, makes sense when you think about it.
Micro-kernels in general-purpose OSes suffer from a death of a thousand cuts due to context switching. Something that would be a single callback to the kernel in a monolith turns into a mess of calls bouncing between kernel and user space. When using something like an RTOS where hardware is not likely intended for general-purpose computing, this is not an issue but, when you start adding all of the complexity of user-installable applications that need storage, graphics, inputs, etc, the number of calls gets huge.
when Gnu Hurd comes out
Any day now…
Too thick
Binary log files is my only significant complaint
That’s not really true. systemd is split up into many different, independent binaries, and each of those does one job and does it well.
That’s not really true. systemd is split up into many different, independent binaries, and each of those does one job and does it well.
If I remember correctly, there was a ton of pain configuring a minimal systemd. I am unaware if that has changed much in recent years.
Here is an old thread talking about it: https://unix.stackexchange.com/questions/150975/what-is-needed-for-a-minimal-systemd-boot-to-launch-getty-on-a-virtual-console
Your link describes setting up one file, the [email protected].
The .target unit files are built-in, and not part of configuration.
Does it really matter if you can’t use those independent binaries with any other init system? If you want to use systemd, you pretty much have to take the whole ecosystem.
i will never grow tired repeating this: systemd is the best thing that happened to linux in the 10s
Yeah I agree. It was rolled out pretty early in its development maturity so it undoubtedly left a bad taste in some people’s mouths. Overall it’s a net positive though. I don’t want to go back to the old way.
There are other ways than systemd and initrc
The… Old way? remembers back to x86 task segment register documentation while sweating profusely
Good talk on the subject Benno is very engaging
Here is an alternative Piped link(s):
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I’m open-source; check me out at GitHub.
Every new tools (especially those being pushed by big corporations) meets resistance and suspicion. It’s a new thing to learn instead of something proven to work, usually more resource-hungry…
It’s a giant mess of interconnected programs that could theoretically still be disentangled, but in practice never are. It was very quickly and exclusively adopted by pretty much every major distro in a short period of time, functionally killing off any alternatives despite a lot of people objecting. Also, its creator was already pretty divisive even before systemd, and the way systemd was adopted kinda turned that into a creepy hate cult targeted at him.
There’s nothing actually wrong with systemd. I personally wish there was still more support for the alternatives though. Systemd does way more than I need it to, and I just enjoy having a computer that only does what I want.
If there were better options then they would have been adopted.
I didn’t say there were better options. I didn’t say it shouldn’t have been adopted. I said it has some drawbacks, wasn’t rolled out very well, and I miss having other options even if they aren’t as generally useful for everyone, and it is inevitable that some people would complain because of that. That isn’t a problem. It’s okay to complain sometimes. We all do it.
this is a Just World fallacy, assuming the best thing will always be adopted and therefore everything not adopted is worse than [current thing], when it is entirely possible that there are in fact better options
This is not a Just World fallacy because I’m not talking about justice or people getting what they deserve. My assumption is that OS developers are competent. Until I see otherwise I’ll maintain that assumption.
But in this case, there were extensive technical talks over multiple distributions.
Debian is probably the best example of how the options were pitted against each other with systemd then winning on its merits.
Am not sure about “giant mess” but indeed it has a lot of moving parts. All that said,
systemd
is solving tangible problems which is why you will almost never see maintainers complain about it. It’s mostly Linux users which by definition oppose any change, Firefox 4 → Firefox 5, Gnome2 → Gnome3, SysV → systemd“Giant mess” was maybe an uncharitable phrase to use, but it really is a lot of programs that are always used together because trying to mix and match it with other stuff or even just take pieces out is a massive pain in the rear. Again, I don’t actually object to systemd. I use it myself because it’s so much better supported. It is not always ideal for everything though, and I’m a little sad about the lack of support for other options.
The idea that Linux users by definition oppose any change is just silly though. We almost all got here by making a big change in how we use computers. Almost any change will be opposed by at least some members of any group. That’s just how people are. That’s not a special thing about Linux users. Sometimes a change that is overall for the better causes some things to be lost, and saying the people who are unhappy with that “by definition oppose any change” is kinda creepy, if I’m being honest. In particular all of those examples you gave are times people were forced into a change that was not all for the better, especially in the short term, with little notice, and no opportunity to voice their concerns in a more constructive manner. Of course some people complained. It would be weird if they didn’t.
I underatand, but I just don’t care. Give me a functioning linux desktop and I will also run your garbage proprietary nvidia software. The alternative is windows, so I have to take what I can get.
I just find it too difficult to use. Id rather learn five well connected simple tools than one massive tool that accomplishes the same thing anyways.