相关疑难解决方法(0)

什么进程创建了这个 X11 窗口?

给定一个 X11 窗口 ID,有没有办法找到创建它的进程的 ID?

当然,这并不总是可能的,例如,如果窗口来自 TCP 连接。对于这种情况,我想要与远程端关联的 IP 和端口。

之前在 Stack Overflow 上问过这个问题,建议的方法是使用该_NET_WM_PID属性。但这是由应用程序设置的。如果应用程序运行不佳,有没有办法做到这一点?

process x11

96
推荐指数
5
解决办法
3万
查看次数

谁有这个unix socketpair的另一端?

我想确定哪个进程具有 UNIX 套接字的另一端。

具体来说,我问的是用 来创建的socketpair(),尽管任何 UNIX 套接字的问题都是一样的。

我有一个程序parent可以创建一个socketpair(AF_UNIX, SOCK_STREAM, 0, fds), 和fork()s。父进程关闭fds[1]并保持fds[0]通信。孩子反其道而行之,close(fds[0]); s=fds[1]。然后孩子exec()的另一个程序,child1。两者可以通过这个 socketpair 来回通信。

现在,假设我知道parent是谁,但我想弄清楚是谁child1。我该怎么做呢?

有几种工具可供我使用,但没有一个可以告诉我套接字的另一端是哪个进程。我试过了:

  • lsof -c progname
  • lsof -c parent -c child1
  • ls -l /proc/$(pidof server)/fd
  • cat /proc/net/unix

基本上,我可以看到两个套接字以及关于它们的所有内容,但无法判断它们是否已连接。我试图确定父进程中的哪个 FD 正在与哪个子进程通信。

process lsof open-files socket

68
推荐指数
5
解决办法
4万
查看次数

标签 统计

process ×2

lsof ×1

open-files ×1

socket ×1

x11 ×1