From: Alan Jenkins Date: Fri, 29 Sep 2017 16:20:31 +0000 (+0100) Subject: units: express Conflict in syslog.socket instead of emergency.service X-Git-Tag: v235~8^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=950d8fcdd9aa7e71ad32ea224e7d6fbe0f9f53de;p=thirdparty%2Fsystemd.git units: express Conflict in syslog.socket instead of emergency.service 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. --- diff --git a/units/emergency.service.in b/units/emergency.service.in index c60fd6e256d..ddf7d4cbe2e 100644 --- a/units/emergency.service.in +++ b/units/emergency.service.in @@ -11,7 +11,6 @@ Documentation=man:sulogin(8) DefaultDependencies=no Conflicts=shutdown.target Conflicts=rescue.service -Conflicts=syslog.socket Before=shutdown.target [Service] diff --git a/units/syslog.socket b/units/syslog.socket index d3987cb9a87..372e8fcd45a 100644 --- a/units/syslog.socket +++ b/units/syslog.socket @@ -10,10 +10,14 @@ Description=Syslog Socket 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