this post was submitted on 29 Jun 2023
129 points (95.7% liked)

Linux

48395 readers
690 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
 

SystemD is blamed for long boot times and being heavy and bloated on resources. I tried OpenRC and Runit on real hardware (Ryzen 5000-series laptop) for week each and saw only 1 second faster boot time.

I'm old enough to remember plymouth.service (graphical image) being the most slowest service on boot in Ubuntu 16.04 and 18.04. But I don't see that as an issue anymore. I don't have a graphical systemD boot on my Arch but I installed Fedora Sericea and it actually boots faster than my Arch despite the plymouth (or whatever they call it nowadays).

My 2 questions:

  1. Is the current SystemD rant derived from years ago (while they've improved a lot)?
  2. Should Linux community rant about bigger problems such as Wayland related things not ready for current needs of normies?
you are viewing a single comment's thread
view the rest of the comments
[–] taladar@sh.itjust.works 3 points 1 year ago (1 children)

Sys V init systems were really not K.I.S.S. since it was anything but simple to write an init script in a way that worked without e.g. having the environment of the calling user leak into your script and influence its behaviour or breaking things when called by the wrong user,... Not to mention all the re-implementations of the same functionality and the difficulty of writing an init script that worked on more than one exact OS, distro and version.

[–] nitrolife@rekabu.ru 0 points 1 year ago (1 children)

Right. But on something more complicated than initializing the usual daemon, systemd has all the same problems. For example, if you have a java application and you want to dynamically manage java parameters and application parameters, the script will look like a pain. something like bash -c 'java ...' or you will have to call a separate script in the initiator. And then to turn off the shell and switch to the application itself, there will be a whole adventure with pid generation.

But sure systemd really more easy then system V.

[–] taladar@sh.itjust.works 1 points 1 year ago (1 children)

if you have a java application and you want to dynamically manage java parameters and application parameters

If you mean you want to auto-detect appropriate values that is no more complicated than the init script was before. You just call that wrapper script.

If you mean you want to turn those on and off as part of your local configuration that is actually quite easy with drop-ins in systemd, much easier than modifying the init script and then having issues with the package overwriting your script with a new copy.

[–] nitrolife@rekabu.ru 1 points 1 year ago* (last edited 1 year ago)

I don't deny that systemd is easier than SysV. I say that on complex configurations it is not slightly simpler. Moreover, what I could do just in the sysV script, I now have to divide by tmpfiles.d and systemd. And sometimes even include processing both there and there, because depending on the version systemd has different behavior with parameters LogsDirectory= and RuntimeDirectory=. As a result, the dependence on the system has not completely disappeared for the package maintainer. Although of course there are a little less problems with systemd.

On other side as a user, I don't really like to guess exactly how a folder was created in /run, via tmpfiles or via systemd.

UPD: On SysV I have one complex, heavy script. Now I have the systemd service, the tmpfiles configuration, the /etc/conf.d parameters file and there is still a shell script to run. But if user wants reconfig something he need look 4 files instead one.