即使启用了延迟,Systemd 用户服务也不会在启动时启动(用户通过 NIS)

即使启用了延迟,Systemd 用户服务也不会在启动时启动(用户通过 NIS)

延迟已启用

loginctl enable-linger

但是,在用户登录之前,用户服务不会启动。再次注销时,服务仍保持活动状态。

当用户不在 /etc/passwd 文件中但通过 NIS 提供时,是否需要额外的东西才能使其工作?

该服务已正确添加到default.target,因此这似乎与为什么我的 systemd 用户单元没有在启动时启动?

答案1

有趣的。network-online.target默认情况下不会被拉入,所以我认为systemd-logind它不会做任何事情;我猜登录不知道它需要等待您的用户详细信息可用......

抬头nss-user-lookup.target。也许您应该创建一个嵌入式文件,以便nss-user-lookup.target获得Wants=和。After=network-online.target

中的评论nss-user-lookup.target听起来不像您预期​​的需求。 “这主要是针对缺乏套接字/总线激活的实现而存在的。”

我相信SSSD实现了离线访问的缓存。因此,也许当您使用 SSSD 时,它就可以正常工作,而不必让一切都等待 wifi。

看起来非 SSSD 解决方案也可以为离线访问提供缓存,但默认设置可能缓存时间不够长:https://wiki.debian.org/LDAP/NSS#Offline_caching_of_NSS_with_nscd

答案2

该问题已通过将用户添加到 /etc/passwd 文件中解决,而不仅仅是依赖 NIS。

相关内容