summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nshd.service.in13
1 files changed, 13 insertions, 0 deletions
diff --git a/nshd.service.in b/nshd.service.in
index 176d276..7760687 100644
--- a/nshd.service.in
+++ b/nshd.service.in
@@ -15,3 +15,16 @@ ExecReload=/bin/kill -HUP $MAINPID
[Install]
Also=nshd.socket
+
+# The following is a workaround for a scheduling deadlock in systemd
+# v230 (and probably other versions). What "naturally" happens is
+# that we would be socket-activated by systemd-logind which is
+# dbus-activated during systemd' dbus_init(), which is called when
+# dbus.service starts. However, systemd is buggy and won't activate
+# any services during dbus_init(), so the whole thing deadlocks. A
+# timeout means that boot eventually continues, but we are left with a
+# half-working system.
+[Unit]
+Before=dbus.service
+[Install]
+WantedBy=dbus.service