Embedded-linuxのどのプロセスがどのポートを使用しているかを知りたい。これは単純なembedded-linuxなので、netstat、lsofなどのネットワークコマンドラインはありません。 (cat、cp、echoなどの基本的なコマンドラインのみが存在します)。
部分的な解決策は、「cat/proc/net/tcp」および「cat/proc/net/udp」コマンドラインを使用することです。ただし、これらのコマンドラインから出力されたリストに使用中のすべてのポートが表示されるかどうかはわかりません、およびリストには特定のポートにバインドされているプロセスが表示されません。
コメントをいただければ幸いです。
/proc/net/tcp
および/proc/net/udp
で開いているすべてのポートを見つけることができるはずです。これらの各ファイルにはinode
列があり、そのソケットを所有するプロセスを見つけるために使用できます。
Iノード番号を取得したら、ls -l /proc/*/fd/* | grep socket:.$INODE
などのlsコマンドを実行して、そのソケットを使用しているプロセスを見つけることができます。プロセスがスレッドごとに異なるファイル記述子で設定されている場合、それらすべてを見つけるために、コマンドをls -l /proc/*/task/*/fd/* | grep socket:.$INODE
に拡張する必要がある場合があります。