summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-07-05 17:36:55 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-07-05 17:36:55 -0400
commitfff055c7c141a72ac0930b626b29155cdbde5522 (patch)
treec0283c9d55b938d43d191a9939559d897308906e
parent05ef3798dd1c9fc030ca16ec518b5d2973c7aa1b (diff)
work around boot problem caused by a bug in systemdv20160705
-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