GNU/Linux >> Linux の 問題 >  >> Linux

Pidのないプロセスを特定する方法は?

45136/tcpと37208/udpの2つのポートをリッスンするプロセスがあります(実際には同じプロセスだと思います)。ただし、netstatはpidを返しません:

netstat -antlp | grep 45136
tcp        0      0 0.0.0.0:45136           0.0.0.0:*           LISTEN      - 

「grep37208」でも同じ結果です。

私もlsofを試しました:

lsof -i TCP:45136

しかし、何も返されません。
これはsqueezeの新しいインストールであり、このプロセスが何であるかは本当にわかりません。何かアイデアはありますか?

回答
あなたのコメントのおかげで、私はそれが何であるかを知りました。 nfs-server nfs-commonを削除し(dkpg –get-selections | grep nfs searchの後)、不明なプロセスが消えました。
カーネルプロセスがまったくマークされていないのに、奇妙です。

お二人に感謝します。 😉

承認された回答:

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の回答で読むことができます。他にもあります。 sshトンネルを使用してIMAPなどのサービスに接続し直す場合があります。これらもプロセス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

プロセスにつながる可能性のあるファイルが表示されます。

関連:Linux環境でのプロセス監視?

参考資料

  • PIDへの移植

Linux
  1. ファイルを作成しているプロセスを特定する方法は??

  2. Linux –実行中のLinuxディストリビューションを特定する方法は??

  3. バックグラウンドプロセスが独自のPidを知る方法は?

  1. Linux でディスクに書き込みを行っているプロセスを特定する方法

  2. Ubuntu でプロセス ID を見つけるにはどうすればよいですか?

  3. nohupプロセスを強制終了するプロセスIDを取得するには?

  1. プロセス名でPIDを取得するには?

  2. プロセスへのポートを識別する方法は?

  3. 開始したばかりのプロセスのpidを取得する方法