首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运用挥之不去

如何运用挥之不去
EN

Unix & Linux用户
提问于 2018-08-15 21:27:16
回答 1查看 11.1K关注 0票数 9

根据这个答案,我为无头系统上的用户启用了逗留。然而,在loginctl list-sessions中,还没有列出用户。如果我通过ssh与这个用户登录,就会显示,一旦我再次断开连接,它就会丢失。

如何在不重新启动整个系统的情况下生成挥之不去的会话

我尝试过systemctl restart systemd-logind,但没有成功。

编辑:我的目标是运行一个由这个用户控制的计时器。如果在启用enabling之后尝试使用此表单sudo -iu shell,则会得到以下错误:

代码语言:javascript
复制
$ systemctl --user status servicename
Failed to connect to bus: No such file or directory

如果我按ssh登录(一个会话出现在loginctl中),它将作为epxected运行。但是现在我注意到它只在shell中工作,仍然不能在sudo shell中工作。因此,它实际上可能与会议无关。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-08-16 01:50:00

您在这里混淆了“用户”和“会话”。

使用loginctl enable-linger myuser将使用户myuser的用户管理器在引导时启动(如果尚未启动,则立即启动),但它不会真正为用户启动任何会话(这些会话仅在用户登录时才会发生)。

如果使用loginctl list-users命令,您将看到它的效果。您还可以使用ps -fu myuser看到用户管理器(systemd --user)在启用逗留器后立即为用户运行:

代码语言:javascript
复制
[root@myhost ~]# loginctl list-users
UID USER
  0 root

1 users listed.
[root@myhost ~]# ps -fu myuser
UID        PID  PPID  C STIME TTY          TIME CMD
[root@myhost ~]# loginctl enable-linger myuser
[root@myhost ~]# ps -fu myuser
UID        PID  PPID  C STIME TTY          TIME CMD
myuser   12345     1 20 18:44 ?        00:00:00 /usr/lib/systemd/systemd --user
myuser   12349 12345  0 18:44 ?        00:00:00 (sd-pam)
[root@myhost ~]# loginctl list-users
 UID USER      
   0 root      
1001 myuser

2 users listed.

但是不存在myuser的新会话,因为它没有通过控制台、GUI或SSH登录:

代码语言:javascript
复制
[root@myhost ~]# loginctl list-sessions
SESSION UID USER SEAT TTY  
      1   0 root      tty0

1 sessions listed.

但是不管会话是什么,用户管理器都会启动,所以如果用户有用户单元(例如服务或计时器),那么不管用户登录或创建会话,这些单元都将在启动时启动。

我希望这能解释给你听。

UPDATE:从编辑到问题,看起来您真正遇到的麻烦是从systemctl --user shell而不是SSH会话运行sudo -i命令。

在切换到用户之后,您可以通过导出XDG_RUNTIME_DIR来解决这个问题,例如:

代码语言:javascript
复制
$ export XDG_RUNTIME_DIR=/run/user/$UID

或者:

代码语言:javascript
复制
$ XDG_RUNTIME_DIR=/run/user/$UID systemctl --user status servicename

在通过SSH登录时,您不需要这样做,原因是SSH将使用PAM对您进行身份验证,其中一个PAM模块将为您设置这些环境变量。如果使用sudo,则不会通过PAM (至少不是完整的PAM堆栈),因此无法正确设置这些堆栈。

票数 20
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/462845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档