chiark / gitweb /
unit: don't Require systemd-journald.socket from units
authorMichal Schmidt <mschmidt@redhat.com>
Fri, 15 Feb 2013 21:42:26 +0000 (22:42 +0100)
committerMichal Schmidt <mschmidt@redhat.com>
Sat, 16 Feb 2013 00:18:09 +0000 (01:18 +0100)
It is not really necessary to have a hard requirement dependency on
systemd-journald.socket in almost every unit. The socket gets pulled
into boot via at least two ways:
 sockets.target -> systemd-journald.socket
 sysinit.target -> systemd-journald.service -> systemd-journald.socket

So just assume something pulled the socket in and drop the automatic
requirement dependencies on it.

"systemctl stop systemd-journald.socket" will now not take the whole
system down with it.

src/core/unit.c

index 86aaa1509a02eb56ebec204440afeee056390dad..3a88996eb7394bfe69c27145bd165f8a24cb07f9 100644 (file)
@@ -616,9 +616,11 @@ int unit_add_exec_dependencies(Unit *u, ExecContext *c) {
         /* If syslog or kernel logging is requested, make sure our own
          * logging daemon is run first. */
 
         /* If syslog or kernel logging is requested, make sure our own
          * logging daemon is run first. */
 
-        if (u->manager->running_as == SYSTEMD_SYSTEM)
-                if ((r = unit_add_two_dependencies_by_name(u, UNIT_REQUIRES, UNIT_AFTER, SPECIAL_JOURNALD_SOCKET, NULL, true)) < 0)
+        if (u->manager->running_as == SYSTEMD_SYSTEM) {
+                r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_JOURNALD_SOCKET, NULL, true);
+                if (r < 0)
                         return r;
                         return r;
+        }
 
         return 0;
 }
 
         return 0;
 }