• Avid Amoeba
    link
    fedilink
    21
    edit-2
    2 years ago

    You’re 10 years too late. We’re all on the systemd bandwagon today.

  • Possibly linux
    link
    fedilink
    English
    92 years ago

    Its overly complicated for some use cases. Its also annoying that some software depends on it.

  • @[email protected]
    link
    fedilink
    92 years ago

    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…

  • @[email protected]
    link
    fedilink
    English
    62 years ago

    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.

  • SaltyIceteaMaker
    link
    fedilink
    22 years ago

    As far as i have heard it is because it doesn’t adhere to unix philosophy and trie to be more than an init system.

    I don’t really care as long as it doesn’t try to spy and/or force features/settings onto me

  • @[email protected]
    link
    fedilink
    English
    51
    edit-2
    2 years ago

    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?

    • meow
      link
      fedilink
      262 years ago

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

    • @[email protected]
      link
      fedilink
      13
      edit-2
      2 years ago

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

    • @[email protected]
      link
      fedilink
      142 years ago

      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.

      • @[email protected]
        link
        fedilink
        22 years ago

        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.

    • @[email protected]
      link
      fedilink
      212 years ago

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

    • @[email protected]
      link
      fedilink
      202 years ago

      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.

        • @[email protected]
          link
          fedilink
          52 years ago

          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.

    • @[email protected]
      link
      fedilink
      222 years ago

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

    • @[email protected]
      link
      fedilink
      32 years ago

      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 😂

  • @[email protected]
    link
    fedilink
    282 years ago

    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

    • @[email protected]
      link
      fedilink
      102 years ago

      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.

      • @[email protected]
        link
        fedilink
        62 years ago

        it could work with fairies and unicorns

        awkward monkey puppet side glance

        It’s C code. There’s no fairy dust or rainbow magic involved. You can check the commit logs…

        rapid typing of git rebase and git push --force commands to alter the code history…

  • treeshateorcs
    link
    fedilink
    882 years ago

    i will never grow tired repeating this: systemd is the best thing that happened to linux in the 10s

    • thelastknowngod
      link
      fedilink
      402 years ago

      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.

  • @[email protected]
    link
    fedilink
    English
    262 years ago

    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.

  • @[email protected]
    link
    fedilink
    51
    edit-2
    2 years ago

    Binary logs are annoying, but once you get the hang of journalctl, it’s not so bad. That is about my only remaining hate for it.

    In its early days, it was a serious pain. Its service management was annoying and is still a bit scattered to this day. It has improved a ton, for sure.

    Then there was PID 1. Here is a legacy discussion about it as I refuse to talk any more about it these days: https://news.ycombinator.com/item?id=10485131

    Above all else, it was kinda forced on us. Most of us were comfortable with sysv already. If I remember correctly, people often said the main dev for systemd could be a real jackass. I have no judgement or experience regarding that though.

    • @[email protected]
      link
      fedilink
      English
      172 years ago

      Above all else, it was kinda forced on us. Most of us were comfortable with sysv already.

      And at least for me it solved a problem which didn’t exist. Sure, there’s some advantages, but when it rolled out it was a huge pain in the rear and caused various problems and made things more complicated for no apparent reason.

    • @[email protected]
      link
      fedilink
      English
      42 years ago

      Most of the bolted on services are rather shitty. ResolveD in particular is straight up hot garbage unless the only thing you are comparing it to is nscd. I like shipping all my logs to a centralized service and journald just gets in the way. It feels like they took upstart, bolted on some really crappy daemons,

    • @[email protected]
      link
      fedilink
      English
      102 years ago

      Yeah, I can easily remember the commands to tail the logs because it’s journalctl -fu and I always think “fuck you” as I’m typing that.

  • @[email protected]
    link
    fedilink
    English
    382 years ago

    Everything everybody else said plus everything with Systemd is just… more complex. With OpenRC, it felt like I could keep all the information I needed to use and administrate it in my head. With Systemd, I have to look stuff up all the time.

  • Sparking
    link
    fedilink
    English
    152 years ago

    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.

  • @[email protected]
    link
    fedilink
    92
    edit-2
    2 years ago

    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 @[email protected] !

    • @[email protected]
      link
      fedilink
      292 years ago

      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.

      • @[email protected]
        link
        fedilink
        52 years ago

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

    • @[email protected]
      link
      fedilink
      122 years ago

      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/

      • @[email protected]
        link
        fedilink
        162 years ago

        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.

        • @[email protected]
          link
          fedilink
          42 years ago

          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.

    • Count Regal Inkwell
      link
      fedilink
      13
      edit-2
      2 years ago

      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.

      • @[email protected]
        link
        fedilink
        22 years ago

        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.

      • @[email protected]
        link
        fedilink
        92 years ago

        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!

    • @[email protected]
      link
      fedilink
      162 years ago

      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)

      • @[email protected]
        link
        fedilink
        102 years ago

        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/

      • @[email protected]
        link
        fedilink
        32 years ago

        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.

      • Sysosmaster
        link
        fedilink
        82 years ago

        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.

      • caseyweederman
        link
        fedilink
        42 years ago

        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.

    • @[email protected]
      link
      fedilink
      6
      edit-2
      2 years ago

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

    • Sysosmaster
      link
      fedilink
      112 years ago

      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…

    • @[email protected]
      link
      fedilink
      102 years ago

      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.

        • @[email protected]
          link
          fedilink
          62 years ago

          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

          • @[email protected]
            link
            fedilink
            6
            edit-2
            2 years ago

            When systemd first showed up there wasn’t much parallelized init systems. People managing complex systems with many services may find the tools of systemd make their lives easier. Of course, nowadays all that complex multi service machine stuff is containerized and none of those containers run systemd 🤔

            If I were gonna psychologize it, poettering and kay typify what the Linux user of the 0s felt when they actually looked at what windows of the time had going on under the hood. “Look at you, tla username, pathetic creature of twenty text files under a trench coat!”

            The problem with that sentiment is that there’s an honesty to recognizing and accepting that you’re not too far removed from the z80 and it keeps you from believing all this computer stuff is more than it’s cracked up to be.

            No one who’s happy with python also keeps a loaded gun next to the server for when it acts up and that’s the problem.

    • @[email protected]
      link
      fedilink
      62 years ago

      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.

  • @[email protected]
    link
    fedilink
    English
    122 years ago

    I only hate it because I can’t figure out how to run a blocking script before everything else when a suspend is initiated.

    • @[email protected]
      link
      fedilink
      22 years ago

      Do scripts in /usr/lib/systemd/system-sleep/ not block? I’ve never had one fail to complete before suspend. I had to use one last year to dump debug stats before and after sleep while we were helping debug Cezanne sleep issues.

      • @[email protected]
        link
        fedilink
        English
        32 years ago

        I guess not because in my attempts to get this working I did put a script there. Does * expansion not work in these scripts? Mind sharing your script if you still have one? I have 3 tabs open to learn systemd when I have time, I did watch a video so far :)

        • @[email protected]
          link
          fedilink
          3
          edit-2
          2 years ago

          I’ll have to dig them up the next time I fire up the laptop I used them on, I’ll also look and see if I shoved them into a git repo.

          There’s some discussion here on the Arch forum that should be able to get you rolling though: https://bbs.archlinux.org/viewtopic.php?id=276046

          That should show you the general form those scripts need to take. I only had to use pre/post sleep ($1), I never needed $2 granularity.