私のCentOS 7では、ある時点でsudo ss -plt
LISTENINGとマークされたポートがリストされていますが、その*:30565
行のプロセス列には情報がありませんでした。他の受信ポートは、たとえば通常どおり独自の所有プロセスを表示しますusers:(("sshd",pid=1381,fd=3))
が、この行にはプロセス情報はありません。lsof -i :30565
または、netstat -p
情報は生成されません。
私はこれを再現することはできず、「非プロセス」がポートでリッスンしている状況を想像するのは難しいです(tcpリスニングプロセスが終了すると、Linuxが期待されるクリーンアップを実行すると確信しているため)。この問題は複数のプログラムでも発生するので、私が考えることができる唯一の説明は、これがCentOSの「意図的ではあるが非常にルートキット」の動作であるということです。しかし、明らかに何かが落ちました。原因は何ですか?
答え1
場合によっては(NFSなど)、プロセス情報を表示しないことのポイントnetstat
は、NFSがカーネルモジュールであるため、通常のプロセスとして実行されず、PIDがないことです。
Google検索にNFSが含まれている場合は、定期的にこの状況のスレッドを見つけることができます。
netstatは一部のポートのPID /プログラム名を報告しません。
注:sudoを使用していない他のユーザーの場合は、-pを使用してポートの関連プロセスを表示するにはroot権限が必要です。