units/fsck@.service \
units/fsck-root.service \
units/quotacheck.service \
- units/rescue.service
+ units/rescue.service \
+ units/user@.service
if ENABLE_BINFMT
nodist_systemunit_DATA += \
units/fsck@.service.in \
units/fsck-root.service.in \
units/quotacheck.service.in \
+ units/user@.service.in \
systemd.pc.in \
introspect.awk \
src/org.freedesktop.systemd1.policy.in \
if (sd_booted() <= 0)
return PAM_SUCCESS;
+ /* Make sure we don't enter a loop by talking to
+ * systemd-logind when it is actually waiting for the
+ * background to finish start-up, */
+ pam_get_item(handle, PAM_SERVICE, (const void**) &service);
+ if (streq_ptr(service, "systemd-shared"))
+ return PAM_SUCCESS;
+
if (parse_argv(handle,
argc, argv,
&controllers, &reset_controllers,
uid = pw->pw_uid;
pid = getpid();
- pam_get_item(handle, PAM_SERVICE, (const void**) &service);
pam_get_item(handle, PAM_XDISPLAY, (const void**) &display);
pam_get_item(handle, PAM_TTY, (const void**) &tty);
pam_get_item(handle, PAM_RUSER, (const void**) &remote_user);
+user@.service
systemd-logind.service
systemd-localed.service
systemd-timedated.service
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=User Manager for %I
+After=systemd-user-sessions.service
+
+[Service]
+User=%I
+PAMName=systemd-shared
+ControlGroup=/user/%I/shared
+ControlGroupModify=yes
+Type=notify
+ExecStart=-@rootbindir@/systemd --user