그놈 터미널에서 strace -f가 작동하지 않는 이유는 무엇입니까?

그놈 터미널에서 strace -f가 작동하지 않는 이유는 무엇입니까?

명령을 실행하려고 합니다.

strace -f gnome-terminal --wait |& grep write

그런 다음 열린 터미널 창에 입력 ls하고 Enter를 누르십시오.

write터미널 내에서 실행 중인 Bash 하위 프로세스로 전송되는 , , 문자에 해당하는 시스템 호출과 하위 프로세스가 출력을 쓸 때의 시스템 호출을 보고 싶지만 실행할 때 시스템 호출이 표시되지 않습니다. 호출이 발생합니다.ls\nwritelsls

write실행할 때 이러한 시스템 호출이 표시됩니다.

strace -f xterm |& grep write

strace -f하위 프로세스를 추적할 수 없는 이유는 무엇입니까 gnome-terminal?

답변1

터미널 에뮬레이션을 수행하는 실제 작업은 사용자가 시작한 명령의 하위 항목이 gnome-terminal-server아닙니다 . gnome-terminal익숙하지 않은 일부/또는 유사한 마술을 통해 시작됩니다 gnome-terminal. 즉, 이미 실행 중인 서비스에 터미널을 시작하도록 요청하는 것입니다.gnome-terminal-serversystemddbus

gnome-terminal-serverPID를 찾아 거기에 추가를 사용할 수 있습니다 strace -p PID. 탭이나 창이 여러 개 있는 경우 gnome-terminal모두 추적됩니다.

관련 정보