每當我建立新終端時,它的 PPID 都會設定為該終端,即使gnome-terminal-server
它是使用以下命令建立的bash
:
3340 22404 22404 22404 ? -1 Ssl 1000 1:16 \_ /usr/lib/gnome-terminal/gnome-terminal-server
22404 23096 23096 23096 pts/1 23096 Ss+ 1000 0:00 \_ bash
22404 23563 23563 23563 pts/0 23613 Ss 1000 0:00 \_ bash
23563 23613 23613 23563 pts/0 23613 R+ 1000 0:00 \_ ps jfax
我特別感興趣的是在pty
意識到 PPID 問題(pts/1
此處命名)之前它如何獲取新的,所以我這樣做了strace -ff gnome-terminal
,它顯示了兩個exec
,一個用於gnome-terminal
另一個,gnome-terminal.real
並且沒有一個PID 是我們新創建的終端的PID。
我假設它透過 unix 套接字或其他東西向終端伺服器發送一些訊息,但我無法完全找到它,我無法追蹤其中任何一個gnome-terminal-server
,即使使用sudo
because Operation not permitted
。
如果我 grepsocket
我unix sockets
確實可以找到一些,但我找不到任何將其連接到的有用線索PID 22404
。
任何人都知道生成新終端的步驟以及它如何獲取 new ptys
,或者我如何調查這個套接字或......?