명령을 실행하려고 합니다.
strace -f gnome-terminal --wait |& grep write
그런 다음 열린 터미널 창에 입력 ls
하고 Enter를 누르십시오.
write
터미널 내에서 실행 중인 Bash 하위 프로세스로 전송되는 , , 문자에 해당하는 시스템 호출과 하위 프로세스가 출력을 쓸 때의 시스템 호출을 보고 싶지만 실행할 때 시스템 호출이 표시되지 않습니다. 호출이 발생합니다.l
s
\n
write
ls
ls
write
실행할 때 이러한 시스템 호출이 표시됩니다.
strace -f xterm |& grep write
strace -f
하위 프로세스를 추적할 수 없는 이유는 무엇입니까 gnome-terminal
?
답변1
터미널 에뮬레이션을 수행하는 실제 작업은 사용자가 시작한 명령의 하위 항목이 gnome-terminal-server
아닙니다 . gnome-terminal
익숙하지 않은 일부/또는 유사한 마술을 통해 시작됩니다 gnome-terminal
. 즉, 이미 실행 중인 서비스에 터미널을 시작하도록 요청하는 것입니다.gnome-terminal-server
systemd
dbus
gnome-terminal-server
PID를 찾아 거기에 추가를 사용할 수 있습니다 strace -p PID
. 탭이나 창이 여러 개 있는 경우 gnome-terminal
모두 추적됩니다.