Note this commit only changes how the code is expressed; it does not change
the existence of any dependency.
The `Conflicts=` was added in
3136ec90, "Stop syslog.socket when entering
emergency mode". The discussion in the issue #266 raised concerns that
this might be needed for other units, but failed to point out why
syslog.socket is special. The reason is that syslog.socket has
DefaultDepedencies=no, so it does not get Requires=sysinit.target like
other socket units do. But syslog.service does require sysinit.target,
among other things.
We don't have many socket, path, or timer units with
DefaultDependencies=no, and I don't think any of the triggered services
have such additional hard dependencies as syslog.service does.
It is much less confusing if we keep this `Conflicts=` in the same file as
the `DefaultDependencies=no` which made it necessary.
DefaultDependencies=no
Conflicts=shutdown.target
Conflicts=rescue.service
-Conflicts=syslog.socket
Before=shutdown.target
[Service]
Documentation=man:systemd.special(7)
Documentation=https://www.freedesktop.org/wiki/Software/systemd/syslog
DefaultDependencies=no
-Before=sockets.target shutdown.target
+Before=sockets.target
# Don't allow logging until the very end
Conflicts=shutdown.target
+Before=shutdown.target
+
+# Don't try to activate syslog.service if sysinit.target has failed.
+Conflicts=emergency.service
[Socket]
ListenDatagram=/run/systemd/journal/syslog