确定没有根/高程的已知进程的networking使用情况

我的应用程序正在启动另一个进程,我想跟踪新进程从networking套接字读取/写入的数据量。

我find了像nethogs这样的工具,但是他们需要提升才能find任意进程的用法。 这也不是我可以用来通过编程获得“现在”的运行总数。

这并不简单,但是您可以在subprocess上使用ptrace并跟踪:

  1. 哪些FD是sockets。
  2. write通话中的字节数。
  3. 交叉引用1中的列表和2中的大小来确定在networking套接字上读取/写入的字节。