我想在 Ubuntu Server 18.04 上运行 lingering,但由于某种原因它没有启动:
# loginctl enable-linger andreymal
Could not enable linger: No such process
在桌面 Ubuntu 和 Arch 中,一切正常。
我试图阅读journalctl -f,但没有关于此的一行。
我没有找到任何内置调试,我不知道如何阅读 strace(但如果有人感兴趣,那么这里:https ://pastebin.com/YVHdrC0K )
如何理解缺失的内容和需要修复的内容?
一切都在 Ubuntu 20.04 中再次崩溃,更新了关于这个的答案
事实证明,出于安全原因,我在
/proc使用挂载选项时隐藏了进程列表hidepid=2,gid=999(例如,读者可以观察到这样的选项在每秒共享主机上的效果)。尽管 systemd-logind 以 root 身份运行,但它的功能被重置,这也导致它失去了访问
/proc和写入No such process的权限(可以通过连接 CAP_SYS_PTRACE 来恢复访问,但这并不安全)。这是一个错误还是一个功能,为什么 systemd 需要
/proc为了平庸的接触而进入它,以及哪个特定进程需要它,目前尚不清楚,但现在它正在关闭hidepid解决了这个问题。
在没有关闭的情况下
hidepid=2,找到了一个选项,可以将额外的组添加到systemd-logind(PLD Linux的补丁,补丁补丁)的下拉文件中:999挂载选项的 gid 在哪里/proc(组名也可以)。然后我们重新启动/重新启动,一切正常。(
Group=999不能随便写,因为更改主进程组会影响创建的系统目录的权限,这也是systemd-logind大喊访问问题拒绝正常工作的原因。)伦纳特,修好它!