![Alt+F2 如何作为 init 进程的子进程直接运行命令?](https://linux22.com/image/1065509/Alt%2BF2%20%E5%A6%82%E4%BD%95%E4%BD%9C%E4%B8%BA%20init%20%E8%BF%9B%E7%A8%8B%E7%9A%84%E5%AD%90%E8%BF%9B%E7%A8%8B%E7%9B%B4%E6%8E%A5%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
在 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+F2,运行 lxterminal,并在终端仿真器窗口中运行以下命令,我将得到
$ pstree -a -p -s $$
systemd,1 --system --deserialize 19
└─lxterminal,1480
└─bash,27000
└─pstree,27013 -a -p -s 27000
第二个 make 如何lxterminal
直接作为 的子进程运行systemd
?是否通过使 lxterminal 进程成为孤儿进程并将其重新设为 的父进程来实现systemd
?谢谢。
答案1
阅读man nohup
,其中解释了如何将进程与父进程分离。进程 1 成为父进程。init
的任务之一是收集(并忽略)进程的exit
状态,并防止出现“僵尸”进程。