[Unit] Description=Name Service hackers.git Daemon Requires=nshd.socket Wants=nss-user-lookup.target Before=nss-user-lookup.target [Service] Type=notify # Use our setuid program instead of setting User= because otherwise it # would deadlock as it tries to poll the nslcd socket to ask if it # knows who the user is. It would time out after 1 minute, but that's # still not good. ExecStart=@@bindir@/nshd-setuid nshd @user@ @bindir@/nshd 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's 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