Назад | Перейти на главную страницу

Определить использование сети известным процессом без root / прав

Мое приложение запускает другой процесс, и я хотел бы отслеживать, сколько данных этот новый процесс прочитал / записал из / в сетевые сокеты.

Я нашел такие инструменты, как nethogs, но они требуют повышения прав, чтобы использовать произвольные процессы. Это также не то, что я могу использовать, чтобы просто программно получить текущую сумму «прямо сейчас».

Это не просто, но вы можете использовать ptrace в дочернем процессе и отслеживайте:

  1. Какие FD являются сокетами.
  2. Байт в read и write звонки.
  3. Сделайте перекрестную ссылку на список в 1 и с размерами в 2, чтобы определить количество байтов, прочитанных / записанных в сетевых сокетах.