lightdm --session-child 12 19
次の出力はどういう意味ですか?
lightdm
上記のコマンドを実行するためにプロセスを分岐する必要があるのはなぜですか?
--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
はい、2つのプロセスを持つことは正常です。
最初のlightdmプロセスはデーモンプロセス(PID 894)です。ログインすると、PAMは内部でPAM機能を実行するために子プロセスを開始する必要があります。 LightDMはデーモンと通信するためにいくつかのパイプを設定し、--session-child(PID 2852)を使用してそれ自体を再実行することによってこれを行います。その後、PAM(ルートとして)は、ユーザーを認証し、セッションに合わせてこのプロセスを設定するように構成されたすべての操作を実行します。完了したら、他のプロセスをフォークして権限を削除してから、実際にセッションを実行します。セッションが終了したら、PAMを使用してクリーンアッププロセスを実行できるようにセッションサブプロセスを開いたままにする必要があります。
最後の文の「セッションサブプロセス」は、1つではなく2番目のlightdmプロセスを参照しているようですlxsession
。しかし、私は本当に知りません。ソースコード。