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.
For a mess, look in the files in /etc/init.d - those scripts are a mess¹.
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