Lubuntu 18.04でデスクトップメニューをクリックし、その中でlxterminalをクリックし、ターミナルエミュレータウィンドウで次のコマンドを実行すると、次の結果が表示されます。
$ 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
Alt+をクリックしてF2lxterminalを実行し、ターミナルエミュレータウィンドウで次のコマンドを実行すると、次の結果が表示されます。
$ pstree -a -p -s $$
systemd,1 --system --deserialize 19
└─lxterminal,1480
└─bash,27000
└─pstree,27013 -a -p -s 27000
lxterminal
2人目は幼い頃にどのように行動しますかsystemd
? lxterminalプロセスを切り離してリセットすると完了しますかsystemd
?
このプロセスの元の親と祖先は何ですかlxterminal
?
AltF2私の質問は実際にはより一般的です。 + initプロセスの子プロセスとしてコマンドを実行するには?
関連ソースコードはどこにありますか?
私の疑い:
alt_F2を押すと、デスクトップ環境のメニューパネルをクリックして「実行」を選択するのと同じです。同等の状況になると思います。
プロセスは、実行するコマンドを求めるウィンドウを表示lxpanel
するためにプロセスを分岐し、指定されたコマンドを実行するために2番目のプロセスを分岐して終了します。Run
これは、指定されたコマンドを実行するプロセスをinitプロセスにリセットします。 (デーモンプロセスの作成とは異なり、指定されたコマンドを実行するプロセスは新しいプロセスセッションを開始しません。)
lxpanel
リーダのプロセスセッションにあり、制御端末がlxession,944
ないため、指定されたコマンドを実行するプロセスは同じセッションにあり、制御端末はありません。SIGHUP
中間プロセスを早期に終了してinitプロセスで指定されたコマンドを実行するプロセスをリセットしないと、送信される心配はありません。
それでは、中間プロセスを早期に終了し、指定されたコマンドを実行するプロセスをinitプロセスに再配置する目的は何ですか?