185
SystemD (lemmy.ml)
submitted 1 year ago by Tundra@lemmy.ml to c/linux@lemmy.ml

Ive been runing Debian 12 (kde) since bookworm was released and am loving it.

I have recently discovered Devuan which seems to be Debian without systemd - what is the benefit of removing this init system?

top 50 comments
sorted by: hot top controversial new old
[-] Synthead@lemmy.world 161 points 1 year ago* (last edited 1 year ago)

It's mostly opinionated. systemd is written in C, uses a consistent config, is documented well, has a lot of good developers behind it, is very fast and light, and does what it's doing very well. Since systemd also is split up into multiple parts, it still follows the "do one thing, do it right" philosophy.

There are some people that believe that systemd "took over" the init systems and configuration demons of their distro, and does "too much." It really does quite a lot: it can replace GRUB (by choice), handle networking config, all the init stuff of course, and much more.

However, I have lived through the fragmented and one-off scripts that glued distros together. Some distros used completely custom scripts for init and networking, so you had to learn "the distro" instead of "learn Linux." They were often slower, had worse error handling, had their own bugs, were written in various scripting languages like tcl, Perl, Bash, POSIX shell, etc. It was a mess.

The somewhat common agreed-upon init system was System V, which is ancient. It used runlevels, nested configuration (remember /etc/rc.d?), and generally, it was mostly used because it was battle tested and did the job. However, it is arguably esoteric by modern standards, and the init philosophy was revised to more modern needs with systemd.

You can probably tell my bias, here. If you have to ask, then you probably don't have a "stance" on systemd, and in my opinion, I would stick with systemd. There were dozens of custom scripts running everywhere and constantly changing, and systemd is such an excellent purpose-built replacement. There's a reason why a lot of distros switched to it!

If you want to experience what other init systems were like, I encourage you to experiment with distros like the one you mentioned. You might even play with virtual machines of old Linux versions to see how we did things a while back. Of course, you probably wouldn't want to run an old version of Linux for daily use.

It should also be mentioned that init systems are fairly integral to distros. For example, if you install Apache httpd, you might get a few systemd .service files. Most distros won't include init files for various init systems. You can write them yourself, but that's quite a lot of work, and lots of packages need specific options when starting them as a service. For this reason, if you decide you want to use a different init system, a distro like the one you mentioned would be the best route.

Great question, and good luck! 👍

[-] fnv@lemmy.ml 15 points 1 year ago

I am fan of principles like KISS and “Do one thing and do it right”. From this point of view is systemd disaster because it is almost everywhere in the system - boot, network, logs, dns, user/home management… It’s always surprise for me if nothing breaks when I do upgrades.
I understand why systemd is here but I’m not at all happy to use it.

[-] Markaos@lemmy.one 33 points 1 year ago

From this point of view is systemd disaster because it is almost everywhere in the system - boot, network, logs, dns, user/home management…

That's almost like complaining that GNU coreutils is a disaster from KISS point of view because it includes too many things in a single project - cat, grep, dd, chown, touch, sync, base64, date, env... Not quite, because coreutils is actually a single package unlike systemd.

The core systemd is big (IMHO it needs to be in order to provide good service management, and service management is a reasonable thing to include in systemd), but everything you listed are optional components. If your distro bundles them into one package, that's on them.

load more comments (3 replies)
[-] Shdwdrgn@mander.xyz 15 points 1 year ago

Some distros used completely custom scripts for init and networking, so you had to learn “the distro” instead of “learn Linux.”

I never really noticed init scripts differing much between distros, but I also didn't play around with many. If the systemD scripts are the same across every system, then this is the first positive thing that I've heard about systemD, so thanks for that.

[-] clmbmb@lemmy.dbzer0.com 12 points 1 year ago* (last edited 1 year ago)

Init scripts were different, I can confirm. And it was pretty bad if you were doing your job and had to change something on a Debian ~~massive~~ machine, then moved to a red hat one.

load more comments (1 replies)
[-] DryTomatoes4@lemm.ee 14 points 1 year ago

I was reading about Slackware today and it seems their init system still uses system V and lots of scripts.

So I'd definitely recommend that OS to anyone curious about the old style of init system.

[-] cspiegel@lemmy.world 11 points 1 year ago

Slackware uses the sysvinit program, but doesn't have System V-style scripts. Which is somewhat confusing, but sysvinit is a basic init program that will just do whatever /etc/inittab tells it, so you can write your startup scripts to work however you want.

Slackware uses what people tend to call a BSD-style init, but it's nothing like the modern BSDs, nor the older BSDs, not really. If you use Slackware, you'll learn how Slackware's init system works, but that's about it.

[-] DryTomatoes4@lemm.ee 5 points 1 year ago* (last edited 1 year ago)

Ah my mistake. I'm just generally curious about what distros use an alternative to systemd (not that I have any issues with systemd myself but I like variety).

So I googled what init system Slackware uses and read this page.

http://slackware.com/config/init.php (no https)

They mention several scripts on that page and that's why I thought they use scripts.

But I haven't actually used the Slackware yet. Suppose I should though since I'm interested.

load more comments (2 replies)
[-] GenBlob@lemm.ee 65 points 1 year ago* (last edited 1 year ago)

Back when systemd was a hot topic I jumped on the bandwagon of using systemd-less distros just because people were telling me how bad it was. To this day I still use openrc but the reality is that systemd works very well and is easy to understand and use. The average user gains no benefit to using another init besides having a better understanding of how the system works.

[-] gamey@feddit.rocks 12 points 1 year ago

Well and a faster boot time but it's definitely a learning curve and not really worth it unless you want to try a Distro that ships something else by default (E.g. Alpine).

[-] Auli@lemmy.ca 15 points 1 year ago

Faster by how much. My PC boots almost instantly now.

[-] gamey@feddit.rocks 5 points 1 year ago

I never had a fast NVME SSD so my devices boot significantly slower than yours but unless you are actually at the point of instant booting it's about half the boot time for me. I only use OpenRC on my Pinephone because it's the default for PostmarketOS (a Alpine based OS for mobile phones) and never found a good enough reason to use it on my actual computer but it's quite a bit faster and also quite a bit less convinient so all in all probably not worth it but still impressive to watch!

load more comments (1 replies)
load more comments (6 replies)
[-] nyan@lemmy.cafe 56 points 1 year ago

Short version: some people (I'm one of them) object to systemd on grounds that are 75% philosophical and 25% the kind of tech detail that's more of a matter of taste than anything else. The older sysV init is a smaller program, which means that it has a smaller absolute number of bugs than systemd but also does less on its own. Some of us regard "does less" as a feature rather than a bug.

If systemd works for you and you don't know or care about the philosophical side of the argument, there is probably no benefit for you in switching.

[-] Zucca@sopuli.xyz 14 points 1 year ago

If systemd works for you and you don’t know or care about the philosophical side of the argument, there is probably no benefit for you in switching.

Exactly this. There are few techincal problems with systemd, but those are so miniscule. I say this as an OpenRC+openrc-init user.

[-] Auli@lemmy.ca 5 points 1 year ago

And the init system systemd replaced was also serial.

load more comments (1 replies)
load more comments (3 replies)
[-] redcalcium@lemmy.institute 48 points 1 year ago

Systemd is huge. It's a complex project that covers not just the init system, but also process management, networking, mounts, sessions, many other things. Many people think its monolithic design run counter with the Unix philosophy and wish to use distros without systemd.

[-] ProtonBadger@kbin.social 54 points 1 year ago

Just to avoid misunderstandings: it's not a monotolithic blob, it is thought so because its first project was a system daemon that manages system services. It is described as "a software suite that provides an array of system components for Linux operating systems.", it is highly modular and offer many optional components that each have their own purpose.

[-] aport@programming.dev 10 points 1 year ago

You're conflating a monorepo and with software monolith.

The development style of systemd is the same as most BSDs, and nobody in their right mind would argue those are counter to the Unix philosophy.

[-] argv_minus_one@beehaw.org 7 points 1 year ago

If a collection of programs that each do a specific thing runs counter to the Unix philosophy, then Unix runs counter to the Unix philosophy.

[-] argv_minus_one@beehaw.org 39 points 1 year ago

None. The opposition to systemd is highly irrational.

[-] MonkderZweite@feddit.ch 12 points 1 year ago* (last edited 1 year ago)

That statement is factually false.

Now we have both said almost nothing.

load more comments (2 replies)
[-] monk@lemmy.unboiled.info 38 points 1 year ago

5 minutes of fame when Debian said "if you want other init systems, maintain them", soon-to-be-Devan folks slammed the door and effectively ruined the chance of multi-init debian by fracturing efforts into their fork instead. But hey, all the news were abuzz about them.

[-] t0m5k1@lemmy.world 35 points 1 year ago

If you're a new user you'd be better off moving on from here and not paying much attention. It's a hot topic full of opinions that everyone will want to force on you.

If you really want to swap out the init system there are some things you need to know.

First, do you need a desktop environment(DE)/window manager(WM)? If so you'll need to find a DE/WM that is not going to demand you use the mainstream init choice which currently is SystemD. If you want to use Gnome from your chosen distro repo's then chances are it will pull SystemD with it.

If you want Gnome but not SystemD you're gonna be building that beast from source every update and for the most part you'll need to go direct to Gnome for any issue/bug you fall over and this too will be painful.

Simpler WMs will be more forgiving and will only rely on either xorg or wayland and will happily run on any init.

There will be other packages out there that also demand you use SystemD, so you'll have to find them and decide if you need them or if there are alternatives that don't have a hard dependency on SystemD.

All the current usable inits are written in C or C+ (except for GNU Shepherd, this is written in guile).

The benefit of swapping out the init system is mainly down to choice, necessity but again this all boils down to what the installation is for and what will it be doing.

For a good run down of the features of the init systems refer to these 2 urls: https://wiki.gentoo.org/wiki/Comparison_of_init_systems https://wiki.archlinux.org/title/Init

All of the init's (except for epoch) provide parallel service startup so if boot time is a focus test each to find the fastest for your platform, Not all of them provide per-service config.

For example one can cobble together: minirc, busybox, syslogng, crond, iptables, lighttpd.

And the end result would be a relatively secure webserver with a small footprint, you could further extend this with nginx to sit in front of lighttpd to provide waf and cache features.

The biggest bug bear with SystemD is that it writes to binary log files and even though it can be configured to generate plain text, if it falls over in a bad way you will still only get a binary log file and if you're in a situation where your only access is say busybox for emergencies. In this instance your only option is to boot from another systemd distro and mount the broken install and run:

$ journalctl --file /var/log/journal/system.journal

Other than that many take issue with SystemD trying replace parts of the system that many say don't really need replacing like sudo, fstab, resolv.conf, etc but again these statements get full of opinion and don't help us truly way up the differences and some of the SystemD alternatives misbehave or become hard dependencies other projects which makes it harder to disable parts and swap out to your chosen package.

I've tried to be more objective with this response and keep as much of my personal opinion out of this, But here is mine:

I don't really like it but to make it easier to get support for my OS I put up with it, I daily drive arch and so must accept it. I could rip it out or run artix, I've gone down this path and got fed up with jumping hurdles to get what I wanted so went back to Arch and now I disable parts of it I don't need/want, have it generate text log files, use openresolv and other choices.

[-] Starfish@kbin.social 16 points 1 year ago
load more comments (3 replies)
[-] SquiffSquiff@lemmy.sdf.org 13 points 1 year ago

SystemD replaced a variety of Linux init systems across different distros almost 10 years ago now but it is still resented by a significant and vocal section of the Linux community.

Devuan is a fork of the Debian Linux distribution that uses sysvinit, runit or OpenRC instead of systemd.

Realistically, at this point, non-SystemD distros are of niche interest. Devuan is one of the distros available in that niche

[-] hunger@programming.dev 18 points 1 year ago

SystemD replaced a variety of Linux init systems across different distros almost 10 years ago now but it is still resented by a significant and vocal section of the Linux community.

No, it is not. It is always the same few people that repeat the same slogans that failed to convince anyone ten years ago. But that does not really matter: In open source the system that can captures developer mind share wins. Systemd did, nothing else came even close.

[-] juliebean@lemm.ee 5 points 1 year ago* (last edited 1 year ago)

what you just wrote doesn't seem to contradict what you quoted in any way. even if there haven't been any people in the past decade who decided they prefer avoiding systemd (unlikely), there's still that vocal minority of linux users that you yourself acknowledge, so idk why you're posturing like you're in a disagreement?

edit: a typo

[-] hunger@programming.dev 4 points 1 year ago

There is no significant section. It is just a few people telling each other the same old conspiracy stories over and over again.

load more comments (2 replies)
load more comments (1 replies)
[-] nakal@kbin.social 11 points 1 year ago* (last edited 1 year ago)

SysV init is crap, but so is systemd as init process. One example is that an admin needs to know why the system does not boot properly. In this case the kernel messages help. systemd is not helping here.

I've currently one problem that I need to solve, but I need 2 people, one to make a video, the other to press Ctrl+Alt+Del to capture an error message that appears for 0,1s after sending the key sequence, when my PC does not boot. This is crap! Why the hell it does not boot occasionally, I have no idea and I've been an Linux/Unix admin for 25 years now. Why I cannot find it? Of course because systemd doesn't even log it!

This is brand new when systemd appeared. I loved to see the kernel messages to full extent...

[-] moonsnotreal 11 points 1 year ago

I don't personally like SystemD, but Devuan sucks. They advertise "init freedom", but in reality all of the scripts by default are just sysV init scripts that runit and openrc can't control.

[-] Drito@sh.itjust.works 10 points 1 year ago* (last edited 1 year ago)

For a desktop user I don't see any significant benefits to replace systemd. But also no-systemd distros works fine. I was impressed during my try on Alpine Linux, that uses openrc instead. The text printing during OS startup is so short that the terminal didn't scroll. The bluetooth worked flawlessly. But it is a small community distro, and Alpine is limited by other things than the init system. The init system is a problem for people that have to deal with services.

On political aspects, IMO FOSS works easier with small and focused components that can survive with spare time developers. I can't make critisicms on technical aspect, I'm not a good programmer, I just notice systemd seems to works fine. Red hat has man-power and capable of large contributions to Linux distros so they leads the innovations. All big distros switched to systemd, now its hard to avoid.

I would like to support smaller FOSS-friendly systems but I use Arch because I need recent versions and the anti-systemd arch-forks are harder to use. I'm a weak guy.

In short, as an user you should be fine by keeping normal Debian. If for political reasons you want a no systemd distro, the easiest is to use MX Linux with the default init.

[-] nomme@lemmy.world 10 points 1 year ago* (last edited 1 year ago)

what is the benefit of removing this init system?

I don't know anything about Devuan, but the init system is replaced, not removed. You need an init system. Devuan probably has something more barebone than systemd.

[-] Arigion@feddit.de 10 points 1 year ago

My problem with systemd is that since I'm practically forced to use it that it's flakey in starting services after boot (independent of service and distro). Since systemd I had to install monit to check if all services came up. Didn't had that problem before. Or I forgot, it's been a while....

[-] 7heo@lemmy.ml 10 points 1 year ago* (last edited 1 year ago)

Don't worry about the downvotes, Lemmy is a systemd sausage fest. If you want negative "karma", just write "systemd bad" or even "pulseausio bad" anywhere, and wait...

[-] ProtonBadger@kbin.social 10 points 1 year ago

Well yes, if you don't provide intelligible arguments it doesn't deserve better. And a lot of the arguments really are like that: "systemd bad" or "is monolithic blob" (which it isn't).

load more comments (1 replies)
load more comments (2 replies)
[-] lntl@lemmy.ml 7 points 1 year ago

For average users, it's a matter of preference. Like asking what's the benefit of chocolate over vanilla.

You are curious though, so I'd recommend giving another init system a try. That would give you some perspective on systemd.

[-] 7heo@lemmy.ml 8 points 1 year ago

Very valid alternatives include:

  • s6
  • runit
  • openrc
  • BSD rc.d

And you can find a pretty complete list here.

load more comments (4 replies)
[-] MonkderZweite@feddit.ch 6 points 1 year ago* (last edited 1 year ago)

Uhm, it's Systemd.

I think this guy has a few points.

load more comments (2 replies)
load more comments
view more: next ›
this post was submitted on 27 Aug 2023
185 points (100.0% liked)

Linux

48248 readers
744 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS