“lightdm --session-child 12 19”是什么意思?

“lightdm --session-child 12 19”是什么意思?

lightdm --session-child 12 19下面的输出是什么意思?

为什么要lightdmfork一个进程来执行上面的命令呢?

--session-child我在联机帮助页中没有找到lightdm。谢谢。

$ pstree -a -p   -s $$
systemd,1 --system --deserialize 19
  └─lightdm,661
      └─lightdm,862 --session-child 12 19
          └─lxsession,944 -s Lubuntu -e LXDE
              └─lxpanel,1087 --profile Lubuntu
                  └─lxterminal,23017
                      └─bash,23020
                          └─pstree,26853 -a -p -s 23020

答案1

https://lists.freedesktop.org/archives/lightdm/2015-December/000916.html

> ps aux | grep lightdm | grep -v grep
>
> is
>
> root       894  0.0  0.1  35192  3492 ?        SLsl 22:19   0:00 lightdm
> root      2766  1.9  1.3  98744 26980 tty7     Ssl+ 22:49   0:45
> /usr/bin/X -core :0 -seat seat0 -auth /var/run/lightdm/root/:0
> -nolisten tcp vt7 -novtswitch
> root      2852  0.0  0.1  19876  3796 ?        Sl   22:49   0:00
> lightdm --session-child 12 19

是的,有两个进程是正常的。

第一个 lightdm 进程是守护进程(PID 894)。当你登录时,PAM要求我们启动一个子进程来运行里面的PAM函数。 LightDM 通过设置一些管道与守护进程通信,然后使用 --session-child (PID 2852) 重新运行自身来实现此目的。然后,PAM(作为 root)执行其配置的任何操作来验证用户身份并设置此进程以适合您的会话。完成后,我们会分叉另一个进程,删除权限并实际运行您的会话。我们需要保持会话子进程打开,以便当会话结束时,我们可以使用 PAM 运行清理过程。

我猜最后一句中的“会话子进程”是指第二个lightdm进程,而不是一个lxsession进程。但我真的不知道源代码

相关内容