Solution 1 :
Vous pouvez trouver les informations équivalentes sous une forme légèrement plus laide (a.k.a. hexadécimal) dans /proc/net/tcp
. Là, vous pouvez trouver l'inode de la connexion, que vous pouvez rechercher sous /proc/$pid/fd/
.
Par exemple :
$ cat /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 6115 1 f5adc4c0 300 0 0 2 -1
...
(Dans netstat normal, mais pas dans busybox netstat, le -e
l'option vous donne également ces informations supplémentaires.)
Vous pouvez trouver le processus qui correspond à l'inode avec la commande suivante :
# for x in $(find /proc/ | grep /fd/); do ls -la $x 2>/dev/null done | grep 6115
...
lrwx------ 1 root root 64 7 jan 22.50 /proc/2560/fd/3 -> socket:[6115]
Vous avez besoin d'un accès root pour la deuxième étape.
Pas aussi pratique que le -p
option, évidemment, mais fonctionne dans une impasse. Peut être scripté, si nécessaire.
Solution 2 :
Cela peut ne pas aider, si vous n'avez pas la possibilité de reconstruire Busybox, mais au cas où cela aiderait quelqu'un...
Busybox a une option de configuration pour supporter le -p
commutateur de Busybox netstat
. Voir option CONFIG_FEATURE_NETSTAT_PRG
, sélectionné dans busybox menuconfig via Networking Utilities → netstat → Enable PID/Program name output .