netstat
そこにプロセスがあります、あなたのユーザーIDはそれが何であるかを見るためにただプライベートではありません。これは、これが提供する保護レイヤーであり、これによりlsof
ユーザーはこれを見ることはできません。単にコマンドを再実行しますが、sudo
代わりにコマンドを使用してプレフィックスを付けます。
$ sudo netstat -antlp | grep 45136
lsof
上部の出力には、これに関する警告さえあります。
(すべてのプロセスを識別できるわけではなく、所有していないプロセス情報は表示されません。すべてを表示するには、rootになる必要があります。)
例
$ netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
$ sudo netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1248/rpcbind
ss
運が良くないなら、netstat
おそらくそうss
でしょう。それでもを使用する必要がsudo
あり、出力はもう少しわかりにくい場合があります。
例
$ ss -apn|grep :111
LISTEN 0 128 :::111 :::*
LISTEN 0 128 *:111 *:*
$ sudo ss -apn|grep :111
LISTEN 0 128 :::111 :::* users:(("rpcbind",1248,11))
LISTEN 0 128 *:111 *:* users:(("rpcbind",1248,8))
プロセスIDはまだありませんか?
使用中のTCPポートに関連付けられているPIDが存在しない場合があります。NFSについては、その1つである@derobertの回答を参照してください。他にもあります。IMAPなどのサービスに接続するためにsshトンネルを使用しているインスタンスがあります。これらもプロセスIDなしで表示されます。
いずれの場合でも、より詳細な形式をnetstat
使用して、最終的にTCPポートを使用しているプロセスをさらに明らかにすることができます。
$ netstat --program --numeric-hosts --numeric-ports --extend
例
$ netstat --program --numeric-hosts --numeric-ports --extend |grep -- '-' | head -10
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 192.168.1.103:936 192.168.1.3:60526 ESTABLISHED root 160024310 -
tcp 0 0 192.168.1.1:2049 192.168.1.3:841 ESTABLISHED sam 159941218 -
tcp 0 0 127.0.0.1:143 127.0.0.1:57443 ESTABLISHED dovecot 152567794 13093/imap-login
tcp 0 0 192.168.1.103:739 192.168.1.3:2049 ESTABLISHED root 160023970 -
tcp 0 0 192.168.1.103:34013 192.168.1.3:111 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:46110 127.0.0.1:783 TIME_WAIT root 0 -
tcp 0 0 192.168.1.102:54891 107.14.166.17:110 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:25 127.0.0.1:36565 TIME_WAIT root 0 -
tcp 0 0 192.168.1.1:2049 192.168.1.6:798 ESTABLISHED tammy 152555007 -
出力にINODESが含まれていることに気付いた場合、この情報を使用してプロセスに戻ることができます。
$ find -inum 152555007
プロセスにつながる可能性のあるファイルが表示されます。
参照資料