
每当我创建一个新终端时,它的 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
,或者我如何调查这个套接字或......?