13 points
*

The arguments against systemd come from the same people that love IRC, mailinglists, tiling window managers, split keyboards, don’t have a mouse, debug with printf, main arch or gentoo, unironically write RTFM|LMGTFY, call users “lusers”, play DnD, think Startrek and/or Star Wars cannot be topped, identify with the portrayed super hackers in media, and are proud of doing things the hard way just to feel some kind of superiority in their life.

Edit: for those who don’t get it, I’m obviously not being serious. If you fit this mythical, stereotypical person… uh… good job?

permalink
report
reply
1 point

It mostly fits me, except the split keyboard and “super hacker”. I started with un*x in the 80s and looks more like a 50s yo bearded guy 😂

permalink
report
parent
reply
12 points
*

This description literally fits everyone in my team at work and i love it. I m the least nerdy one there and its beautiful.

permalink
report
parent
reply
14 points

Well, I like IRC, ergonomic keyboards, sometimes debug using print commands, use Gentoo (Happy birthday!), play DnD and sometimes have to do things the hard way, and I like systemd, especially as a developer, I can test services right from my user account.

I think the hate comes from people who just want something to hate.

permalink
report
parent
reply
2 points

I meh IRC(no history without bouncers), rarely debug using printf, mostly debug in some GUI, but sometimes in GDB TUI, use Gentoo(HB, Larry the Cow), don’t even know DnD rules, don’t use systemd and really hate pulseaudio.

permalink
report
parent
reply
25 points

I doubt there are many (if any) people that fit this oddly specific criteria.

permalink
report
parent
reply
-7 points

Omega surprising that absolutely nobody in the universe fits the hyperbole.

permalink
report
parent
reply
20 points

Why are you attacking so many loud majorities at once? Not everyone that likes some of those hates systemd or belittles users for

permalink
report
parent
reply
-13 points
*

permalink
report
parent
reply
16 points
*

… you’re doing a better job fitting the “judgemental, antisocial nerd” stereotype with these replies than the people you’re making fun of.

permalink
report
parent
reply
6 points

Except mailinglists lovers. Linux kernel developers hate systemd with every neuron.

permalink
report
parent
reply
21 points

Just because I ran arch with ratpoison and firefox with Vim keybindings because I didn’t have a mouse wasn’t out of superiority, twas cause I was too poor to afford a mouse at the time.

permalink
report
parent
reply
12 points

permalink
report
parent
reply
5 points

Acktuchlly, I had moved just moved to Colorado and ended up living in a family friend’s shed for a couple months. Every few days i walked to the library for wifi to download shit and check email. My TouchPad went out on my acer aspire 1 so if I remember correctly I borrowed a friend’s mouse to get it all setup and afterwards used only keyboard, but out of necessity. Eventually I did get a mouse, and I just use xfce now, but I seriously can’t use a web browser without vim bindings now.

permalink
report
parent
reply
23 points

hey don’t go bundling up us Arch users with Tiling window managers with superhackers. I can hardly spell DNS

permalink
report
parent
reply
3 points

Lol

permalink
report
parent
reply
7 points

Hey, I use hyprland on Arch, and I can spell DNS just fine thank you. Don’t bundle me with the systemd haters or any haters for that matter

permalink
report
parent
reply
5 points

debug with printf

I feel personally attacked.

permalink
report
parent
reply
75 points

Does too much for one tool (against unix philosophy) and has poor interop with other tools (binary logfiles).

permalink
report
reply
21 points

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.

permalink
report
parent
reply
56 points

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.

permalink
report
parent
reply
18 points

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

permalink
report
parent
reply
7 points

Your link describes setting up one file, the getty@.service.
The .target unit files are built-in, and not part of configuration.

permalink
report
parent
reply
64 points

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.

permalink
report
parent
reply
-13 points

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.

permalink
report
parent
reply
1 point

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.

permalink
report
parent
reply
8 points

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.

permalink
report
parent
reply
-3 points

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.

permalink
report
parent
reply
1 point

Adblock does only one thing: blocks ads. Doesn’t sound phylosophy-breaking.

permalink
report
parent
reply
39 points

Linux User when their program does more than IO text streams:

permalink
report
parent
reply
4 points

Piping xz into tar is not text stream

permalink
report
parent
reply
13 points

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

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
2 points

Too thick

permalink
report
parent
reply
3 points

when Gnu Hurd comes out

Any day now…

permalink
report
parent
reply
5 points

Binary log files is my only significant complaint

permalink
report
parent
reply
157 points
*

Having sniffed around the Linux community for years, I feel like whatever flaws SystemD has as a computer program are of tertiary importance when faced with the thing that really matters:

  • The developer of SystemD was mildly rude to some community members that one time. That means he is two hitlers and a stalin wearing a trenchcoat and everything he makes must be utter garbage.
permalink
report
reply
81 points

Yeah they seem to think he “took over” the Linux init process all by himself. Like distro maintainers aren’t the ones who made the decision to move to systemd based on technical merits (presumably).

permalink
report
parent
reply
24 points

I think people like that view Linux as some kind of fiefdom rather than a community of individuals.

permalink
report
parent
reply
8 points

It is on technical merits as you don’t see maintainers complaining about systemd, only users who just don’t like it for number of randomly picked reasons.

permalink
report
parent
reply
13 points

I interacted with him briefly in a forum but didn’t realize who he was until later. He had that a bit of that programmer awkwardness going, but also having such a vocal abd sustained backlash against a major project you’ve been working on for years has to affect the poor dude pretty heavily.

permalink
report
parent
reply
79 points
*

If you really want the short version:

Systemd was half baked literally when it came out and figuratively as an idea, so much so that there’s already a replacement for it in the works.

A longer version:

Systemd replaced the init script style of boot and process management, which had been in place for decades. init scripts were so simple they could be understood just by looking at the name: the computer is Initialized by Scripts. Systemd was much more complex and allowed many more tools to interact with the different parts of the computer, but people had to learn these tools. Previously all a person had to understand to deal with the computer was how to edit a text file and what various commands and programs did. After systemd a person has to understand how to use the dozens of invocations of systemctl and it’s variants and if they are dealing with a problem, —you know, the only reason a person would ever be dealing with initializing services— they gotta know what’s going on with the text files that systemd uses to run different commands and programs.

So a person who already understood what was going on might rightly say “hey, this systemd thing is just the same shit with different file locations and more to learn”.

People complain about the creator and maintainer of systemd, lennart poettering . Poettering is also the person behind pulseaudio, an powerful but complex audio management daemon in Linux whose name you only recognize because it’s caused you no end of trouble. Pulseaudio was also replaced relatively quickly by pipewire.

The argument could be made (and probably has) that poetterings work is indicative of the problems with foss developers working as employees of major companies with their job responsibilities inclusive of their foss projects. The developer in that situation has an incentive to make big sweeping changes, they’re being paid for it after all, instead of being more careful and measured.

When every big foss maintainer is trying to find a way to justify being paid for it, their projects are never done.

At least poettering is working for Microsoft, ruining windows now…

E: oh my god I forgot about the binary log files! So before (and now), the universal format for log files was plain text. You know, because it’s a log that’s text. Systemd uses binary log files that need a special tool to open and parse. So if you want to look through them on a computer without that tool you’re kinda screwed. Now systemd isn’t the only software package with binary log files, but many people have made the very persuasive argument that it’s not a trait to copy.

E2: actually spelled the man’s name right. Thanks @floofloof@lemmy.ca !

permalink
report
reply
0 points
*

Simple fails when complex problem arrives. Declarative approach of systemd daemons allows for more versatile solutions in unified format.

permalink
report
parent
reply
12 points

Yep, to add on as well as summarized this… Linux has historically had a design methodology of “everything is a file”. If your not familear with the implications of this, it means your command line tools just kind of work with most things, and everything is easy to find.

For instance, there’s no “registry / regedit” on Linux… There’s just a folder with a config file that the application stores settings in. There’s no control panel application to modify your network settings… Just a text file on your OS. Your system logs and startup tasks were also (you guessed it) sinole filea on the system. Sure there might be GUI apps to make these things easier for users, but under the hood it reads and writes a file.

This idea goes further than you might assume. Your hard drive is a file on the file system (a special file called a block device). You can do something like “mount /dev/sda1 /home/myuser/some_folder” to “attach” the drive to a folder on the system, but that special block device (dev/sda1 in this case) can be read and written to byte by byte if you want with low level tools like dd.

Even an audio card output can show as a file in dev (this is less the case now with pipewire and pulse), but you used to be able to just echo a raw audio file (like a wav file) and redirect the output to your audio device “file” and it would play out your speaker.

Systemd flipped this all around, and now instead of just changing files, you have to use applications to specify changes to your system. Want to stop something from starting? Well, it used to be that you just move it out of the init directory, but now you have to know to “systemctl disable something.service”, or to view logs " journalctl -idk something.service" I dont even remember the flags for specifying a service, so I have to look it up, where it used to just be looking at a file (and maybe use grep to search for something specific)

permalink
report
parent
reply
7 points

Systemd flipped this all around, and now instead of just changing files, you have to use applications to specify changes to your system. Want to stop something from starting? Well, it used to be that you just move it out of the init directory, but now you have to know to “systemctl disable something.service”, or to view logs " journalctl -idk something.service" I dont even remember the flags for specifying a service, so I have to look it up, where it used to just be looking at a file (and maybe use grep to search for something specific)

not true, SystemD still uses files for this very reason…

and what is the last time you used the text version of a syslog.8.xz file?

you are basically complaining that you need to learn how your system works… before you can use it. and there is nothing preventing you from making your own distro that doesn’t uses SystemD, or using rSyslog instead of systemd-journal for logging.

incidentally, to just view the logs its journalctl -xef (see https://man7.org/linux/man-pages/man1/journalctl.1.html for what that means) it will be like the syslog you know.

want to see the status of a daemon : systemctl status want it for the system systemctl status want to see the logs of only a specific daemon journalctl -xefu . this all, means that its easier to find the logs for diffrent services since there not scattered somewhere in the /var/log dir… (is it in the syslog, does it have its own log file, is it in the kernel log)…

You are free to setup your system in whatever way you like… but whining about that something works differently is “Microsoft mentality”… lets leave that with them.

permalink
report
parent
reply
10 points

Want to stop something from starting? Well, it used to be that you just move it out of the init directory, but now you have to know to “systemctl disable something.service”,

That is still the case, nothing stops you from manually moving a file and its dependencies into or out of /etc/systemd/system/

permalink
report
parent
reply
3 points

Not the really the point of your post but I personally tend to use journalctl -fu something.service. That brings you to the end of the logs for that unit and I get to smile about flipping off systemd.

permalink
report
parent
reply
4 points

Systemd flipped this all around, and now instead of just changing files, you have to use applications to specify changes to your system. Want to stop something from starting? Well, it used to be that you just move it out of the init directory…

Enable and disable just create symlinks of the “just changing files” files in your example. It tells you this every time you install something that enables a service.
Want to do it manually? ln -s (or rm the link to “disable” it).
Want it to happen later in the init sequence? Put the link in a different .target directory.
All “systemctl enable” does is put the symlink in the target directory that’s specified in the Install section of the unit file.

As for “specifying a service”… Everything is a unit file (yes, file), journalctl -u just means “only show me logs for this unit”.
There’s no flag for “specifying a service”, you just type in the service name. If there’s any ambiguity (eg. unit.service and unit.socket), you type the service name followed by .service
A flag you might find useful is -g, which means “grep for this string”. You can combine this with -u to narrow it down.

permalink
report
parent
reply
25 points

Init scripts were simple? Man you haven’t seen a bunch of shitty init scripts then.

permalink
report
parent
reply
6 points

Simple doesn’t mean well done. Badly written code can be simple but still bad

permalink
report
parent
reply
9 points

Oh man you reminded me of bad init scripts that would prevent you from getting to multi-user login. I hope you remembered your root password so you can get into single user mode!

permalink
report
parent
reply
9 points

Pulseaudio was also replaced relatively quickly by pipewire. lets check that, shall we:

PipeWire: Initial release 20 June 2017; 6 years ago source: https://en.wikipedia.org/wiki/PipeWire

PulseAudio: Initial release 17 July 2004; 19 years ago source: https://en.wikipedia.org/wiki/PulseAudio

so “relatively quickly” is a time span of 13 years in your idea… or the difference between 2004 and 2017.

if that’s your level of detail… your whole “rant” is worthless…

But lets be generous and look into it,

init scripts were so simple they could be understood just by looking at the name

this is blatantly false, for the old system you need to know about runlevels, what they mean, how the half backed init annotations work, and its dependency check works.

### BEGIN INIT INFO
# Provides:          myrec
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO

you needed special tools to watch if an application actually was running and not crashed, and to keep it running.

add to that that the difference between systemd.service file and a sysv / init / initd script is more or less the same complexity (just different standards).

the universal format for log files was plain text false, the universal format for logging was plain text…

which is currently (slowly) getting replaced with structured logging. (which is objectively better, imho). there are a number of different log formats, most use a binary (compressed) format. logging to plain text was generally only used for the most recent log entries. a binary format for logging, as long as there’s is tooling to get it to a (structured) textual output, is better than a pure text log. I mean, if its good enough for MySQL / MariaDB it ought to be good enough for you…

permalink
report
parent
reply
15 points

gayHitler420 taught me something today. thank you for this informative comment

permalink
report
parent
reply
11 points

Except it is clearly written by someone who just despises it, and doesn’t really know what they are talking about.

Init scripts were awful… they varied by distro and frequently were the source of odd problems.

There’s a good reason the Linux industry moved away from them to other ways to handle initialisation of the system and service management.

permalink
report
parent
reply
1 point

They weren’t that bad. You had to look in like 3 places, depending on the distro, but you could find them. And you could see exactly what they were doing once you found them.

systemd gets a job done but I’d much prefer something simpler.

permalink
report
parent
reply
5 points

Pottering is also the person behind pulseaudio, an powerful but complex audio management daemon in Linux whose name you only recognize because it’s caused you no end of trouble. Pulseaudio was also replaced relatively quickly by pipewire.

Powerful? No, JACK is more powerful and was created 2 years before pulseaudio.

For context back then OSS was primary audio api, and unlike ALSA it did not have software mixing. So sound servers were created. Lots of sound servers, so it was and still it yet another sound server without extra functionality. Meanwhile dmix existed since at least 2001 and JACK allowed route output of one application to input of another.

At least pottering is working for Microsoft, ruining windows now…

You know what? I wich him luck.

permalink
report
parent
reply
9 points

The log files only have binary markers within the text. You could run the raw log files through strings and get the plain log files with everything important intact.

permalink
report
parent
reply
5 points

Ty! That’s really good to know!

permalink
report
parent
reply
12 points

init scripts were so simple they could be understood just by looking at the name: the computer is Initialized by Scripts. Systemd was much more complex and allowed many more tools to interact with the different parts of the computer, but people had to learn these tools. Previously all a person had to understand to deal with the computer was how to edit a text file and what various commands and programs did.

It’s complex because it solves a complex problem. before people had to hack that together with complex init scripts, now they can let systemd do the hard work.

A comment from an Arch Linux’ init script maintainer: https://www.reddit.com/r/archlinux/comments/4lzxs3/comment/d3rhxlc/

permalink
report
parent
reply
12 points
*

lineart pottering

Lennart Poettering

permalink
report
parent
reply
5 points

Ty I’ve spelled his name probably every wrong way in the past.

permalink
report
parent
reply
30 points

Pulseaudio was also replaced relatively quickly by pipewire.

I really wouldn’t say that… PulseAudio has been around since like 2004, and PipeWire’s initial release was in 2017 (13 years later). I don’t think PulseAudio was incorporated into most distros by default until like 2007 or so, but that’s still 10 years before PipeWire was even released. PipeWire is only recently becoming the default in popular distros. We’ve had to deal with Pulse for a long time.

permalink
report
parent
reply
4 points

That’s horrifying. I was just writing from memory and resisting pulse for a few years after it was sort of the defacto standard.

permalink
report
parent
reply
13 points
*

pulseaudio, an powerful but complex audio management daemon in Linux whose name you only recognize because it’s caused you no end of trouble. Pulseaudio was also replaced relatively quickly by pipewire.

PulseAudio never gave me trouble but I guess I’m just lucky or some shit. Also PipeWire took forever to come out.

permalink
report
parent
reply
1 point

In games after I press button to shoot, animation plays and then eternity later comes shooting sound when animation ends. JACK compared to PA is super responsive in games, direct ALSA reduces lag by additional 15ms.

permalink
report
parent
reply
5 points

What is the systemd replacement you mention?

permalink
report
parent
reply
11 points

There’s both runit and system6.

permalink
report
parent
reply
4 points

To ask a different question… what was wrong with initd? I’m the better part of a decade stale at this point but I don’t know that I ever ran into an edge case that initd couldn’t handle with a little massaging

permalink
report
parent
reply
5 points

and openrc too, i tried it once in artix

permalink
report
parent
reply
8 points

dont forget OpenRC

permalink
report
parent
reply
49 points
*

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?

permalink
report
reply
0 points

I want init 6 back! It’s a reflex to type that.

permalink
report
parent
reply
10 points

Raising Skinny Elephants Is Utterly Boring.

It can be done remotely, even over SSH by writing to /proc/sysrq-trigger

permalink
report
parent
reply
24 points
*

Check out systemd’s userspace reboot feature, they implemented it to avoid long reboot times on server hardware.

https://www.phoronix.com/news/systemd-254-Released

permalink
report
parent
reply
1 point

That version is too new to be in any stable server distro yet.

permalink
report
parent
reply
6 points

Ah, fair enough. I’ve used it on my Arch boxes since shortly after release.

permalink
report
parent
reply
6 points

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?

permalink
report
parent
reply
3 points

I mean. You can fix those with a bit of effort.

permalink
report
parent
reply
5 points
*

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.

permalink
report
parent
reply
4 points

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.

permalink
report
parent
reply
24 points

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 @elscallr@lemmy.world has point out…

permalink
report
parent
reply

linuxmemes

!linuxmemes@lemmy.world

Create post

I use Arch btw


Sister communities:
Community rules
  1. Follow the site-wide rules and code of conduct
  2. Be civil
  3. Post Linux-related content
  4. No recent reposts

Please report posts and comments that break these rules!

Community stats

  • 7.5K

    Monthly active users

  • 1.2K

    Posts

  • 66K

    Comments