列出具有 windows 的 Linux 进程

列出具有 windows 的 Linux 进程

我怎样才能列出 Linux 进程(如ps aux),但只列出那些具有 X11 窗口的进程?

我猜想进程和 X 服务器之间一定存在某种简单的连接(就像 Linux 中始终存在的那样)。它暴露给 吗lsof

答案1

xwininfo -tree -root | grep -v "没有名字" | grep -v child
它的方法与您所要求的略有不同:它不是列出进程,而是列出窗口。如果您要查找进程 ID 号列表,则此方法无法完成任务。如果您要查找正在运行的进程列表,则此方法可以完成任务。

显然,这种方法不会显示任何名称中包含“child”的程序的名称。不过,如果您正在寻找一种可以满足大多数用途的快速简便的选项,那么这可能是一个。

哦,顺便说一下,还有很多其他的“xwininfo” 选项,例如能够仅指定一个窗口的名称(而不是指定“根”窗口)。

答案2

我不太明白你的意思。你最有可能想要使用的命令是

    ps alx | grep pts

您将需要long标志来ps显示第十一列,该列标识进程的终端(如果有)。

但是,您也可以以不同的格式查看相同的信息,通过pstree...

pstree 将正在运行的进程显示为一棵树。树的根是 pid 或 init(如果省略 pid)。

通过这个,你可以搜索桌面管理器(在我的情况下是 kdm),然后从中查看所有进程下降从这里开始,包括你自己开始的那些,比如 ssh 连接。如果你使用标志-p,你将得到进程号,

      ├─konsole(2716)─┬─bash(2739)───ssh(8328)
                      │               └─{konsole}(2738)

这允许您检查进程的进程号ssh是否与 的输出相同ps alx。但这确实不是显示,据我所知,发出命令的 tty。

相关内容