Рассмотреть возможность использования SystemTap . Он является динамическим инструментом двигателя, который динамически исправляет ядро, чтобы вы могли отслеживать любое событие в ядре, например, открытие сокета. Он активно разрабатывается Redhat, поэтому он поддерживается в CentOS.
Для установки SystemTap на CentOS 6:
Включить репозиторий Debuginfo:
SED -I 'S / ^ Enabled = 0 / Enabled = 1 /' /etc/yum.repos.d/centos -Debuginfo.repo.
Установка SystemTap:
yum Установка SystemTap
Установите пакеты Debuginfo для ядра. Это можно сделать вручную, но есть инструмент, который может сделать это автоматически:
COPEP
SystemTap не имеет отставленного зонда для подключения TCP, но вы можете напрямую привязать к функциям ядра! Вы также можете сделать это на уровне сокета.
I.e. Создайте сценарий под названием Conn.Stp
:
probe kernel.function("tcp_v4_connect") {
printf("connect [%s:%d] -> %s:%d\n", execname(), pid(),
ip_ntop(@cast($uaddr, "struct sockaddr_in")->sin_addr->s_addr),
ntohs(@cast($uaddr, "struct sockaddr_in")->sin_port));
}
Это даст вам следующий вывод:
# stap conn.stp
connect [nc:2552] -> 192.168.24.18:50000
connect [nc:2554] -> 192.168.24.18:50000
connect [nc:2556] -> 192.168.24.18:50000
Однако события отслеживания отслеживания кажутся более сложными.
Хорошо, мне понравилось, где проблема:
Exec=env WINEPREFIX=~/.wine32ie7 wine 'C:\\Program Files\\Internet Explorer\\iexplore'
должно быть
Exec=env WINEPREFIX=/home/luca/.wine32ie7 wine 'C:\\Program Files\\Internet Explorer\\iexplore'
, так как ~
кажется, что значение имеет только терминальное окружение.