[systemd-devel] systemd-journald, syslog.socket and service activation

Thomas HUMMEL thomas.hummel at pasteur.fr
Thu Jul 2 15:57:47 UTC 2020



On 02/07/2020 16:44, Andrei Borzenkov wrote:

> This is common misunderstanding. Dependencies are between jobs, not
> between units. Requires means systemd will submit additional job for
> dependent unit - nothing more nothing less. Unless systemd is also told
> to wait for result of this additional job, both are started in parallel
> and failure of dependent job does not affect other unit in any way.

You're right. Sorry if I was not clear.
Note however that systemd.unit doc talks about units, not jobs for Requires=

Anyway, it turns out that systemctl list-dependencies --after 
rsyslog.service shows also an ordering dependency on sockets.target / 
syslog.socket.

So, I might be wrong but shouldn't Requires= + After= make the rsyslog 
service fail if syslog.socket fails ?

# systemctl show -p Requires,After rsyslog.service
Requires=syslog.socket system.slice sysinit.target
After=system.slice sysinit.target syslog.socket network.target 
basic.target network-online.target

Doc says:
"If this unit gets activated, the units listed will be activated as 
well. If one of the other units fails to activate, and an ordering 
dependency After= on the failing unit is set, this unit will not be 
started. "

That's what I meant and though it does seems so at boot, I seemed to 
experience the contrary when manually starting rsyslog.service...

So I must like you said misunderstand something...

Thanks for your help

--
Thomas HUMMEL



More information about the systemd-devel mailing list