> Kent Borg wrote on 2026-01-18 06:59: > >> I admit I don't know much about systemd, but every time I brush into it >> it looks complicated and like it is a do-everything mess, built by >> accretion not design. > > It's not a mess, and it's well designed, not built by accretion.
Oh, I beg to differ. Lennart Poettering is an idiot. The systemd idea is a windows-esque steaming pile of crap. Its bloated. It wraps up too much into one process. It is a single point of failure. It breaks the unix philosophy (Did I say Poettering was an idiot?) It broke decades of compatibility. The service files are yet another bunch of meta-script nonsense. There is no reason to have YET ANOTHER file. > > For a mess, look in the files in /etc/init.d - those scripts are a mess¹. OK, you want to see a mess? Take a look at /etc/systemd directory. A pseudo hierarchical process management tree constructed with symlinks to scripts all over the place. The /etc/init.d and /etc/rc[0-9].d directories were clear and unambiguous in their purpose and the way they worked. I can't stand systemd it adds unnecessary complication without proper justification. > > >> I admit, I'm ignorant, but I *do* know that there >> is something wrong with their design that they have to patch sshd. >> Patching sshd is simply WRONG, so I wonder about alternatives. > Others have pointed out that patching sshd is common, what systemd is > probably doing is adding a call to ¿ sd_notify() ? when the service is > up and ready. > > So services depending on it can be started. Pretty reasonable for a > services management system. > > > ¹ Let's look at postfix, for example: > >> systemctl cat postfix.service: >> >> systemctl cat postfix.service >> # /lib/systemd/system/postfix.service >> [Unit] >> Description=Postfix Mail Transport Agent >> Documentation=man:postfix(1) >> Conflicts=sendmail.service exim4.service >> ConditionPathExists=/etc/postfix/main.cf >> >> [Service] >> Type=oneshot >> RemainAfterExit=yes >> ExecStart=/bin/true >> ExecReload=/bin/true >> >> [Install] >> WantedBy=multi-user.target > > > We have a description and a pointer to the documentation. > > We see that it shouldn't run if exim4 or sendmail are handling email > already. Nicely expressed. > > We see that it won't start without /etc/postfix/main.cf. Again, nicely > expressed. > > The ExecStart=/bin/true indicates this is supports multiple postfix > instances. > > > > > > An individual postfix service instance: > >> systemctl cat [email protected] >> >> # /lib/systemd/system/[email protected] >> [Unit] >> Description=Postfix Mail Transport Agent (instance %i) >> Documentation=man:postfix(1) >> PartOf=postfix.service >> Before=postfix.service >> ReloadPropagatedFrom=postfix.service >> After=network-online.target nss-lookup.target >> Wants=network-online.target >> >> [Service] >> Type=forking >> GuessMainPID=no >> ExecStartPre=/usr/lib/postfix/configure-instance.sh %i >> ExecStart=/usr/sbin/postmulti -i %i -p start >> ExecStop=/usr/sbin/postmulti -i %i -p stop >> ExecReload=/usr/sbin/postmulti -i %i -p reload >> >> [Install] >> WantedBy=multi-user.target > > > > Now, /etc/init.d/postfix - I'm not even gonna post that here, anyone who > wants to look at the 129 lines (on my server) of script can do so, but > even as someone who knows bash, it's much harder to read what's going on. > > > I just noticed this in /etc/init.d/postfix, what the heck is it doing?!? > > > TZ= > > unset TZ > > Sets a variable ... to blank. Then unsets it? > > Unsetting a non-existent variable does not generate any error, what is > this doing? > > _______________________________________________ > Discuss mailing list > [email protected] > https://lists.blu.org/mailman/listinfo/discuss > _______________________________________________ Discuss mailing list [email protected] https://lists.blu.org/mailman/listinfo/discuss
