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
lxterminal
두 번째 사람은 어렸을 때 어떻게 행동합니까 systemd
? lxterminal 프로세스를 분리하고 재설정하면 완료됩니까 systemd
?
이 과정의 원래 부모와 조상은 무엇입니까 lxterminal
?
AltF2내 질문은 실제로 더 일반적입니다. + init 프로세스의 하위 프로세스로 명령을 실행하는 방법은 무엇입니까 ?
관련 소스코드는 어디에 있나요?
내 의심 :
alt_F2를 누르면 데스크탑 환경의 메뉴 패널을 클릭하고 "실행"을 선택하는 것과 같습니다. 나는 동등한 상황이 될 것이라고 생각한다.
프로세스 는 실행할 명령을 묻는 창을 lxpanel
표시하기 위해 프로세스를 분기한 다음 지정된 명령을 실행하기 위해 두 번째 프로세스를 분기한 후 종료됩니다. Run
이는 지정된 명령을 실행하는 프로세스를 init 프로세스로 재설정합니다. (데몬 프로세스 생성과 달리 지정된 명령을 실행하는 프로세스는 새 프로세스 세션을 시작하지 않습니다.)
lxpanel
리더의 프로세스 세션에 있고 lxession,944
제어 터미널이 없기 때문에 지정된 명령을 실행하는 프로세스는 동일한 세션에 있고 제어 터미널이 없습니다. SIGHUP
중간 프로세스를 조기 종료하여 init 프로세스로 지정된 명령을 실행하는 프로세스를 재설정하지 않으면 전송될 걱정은 안 하셔도 될 것 같습니다.
그렇다면 중간 프로세스를 조기에 종료하여 지정된 명령을 실행하는 프로세스를 init 프로세스로 재배치하는 목적은 무엇일까요?