GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie identifiziere ich einen Prozess, der keine Pid hat?

Ich habe einen Prozess, der 2 Ports abhört:45136/tcp und 37208/udp (eigentlich gehe ich davon aus, dass es sich um denselben Prozess handelt). Aber netstat gibt keine PID zurück:

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

Gleiches Ergebnis mit „grep 37208“.

Ich habe auch lsof versucht:

lsof -i TCP:45136

Aber es gibt nichts zurück.
Es ist eine Neuinstallation von Squeeze und ich weiß wirklich nicht, was dieser Prozess sein könnte. Irgendeine Idee ?

ANTWORT
Dank Ihrer Kommentare habe ich herausgefunden, was es war. Ich habe nfs-server nfs-common deinstalliert (nach einer dkpg –get-selections | grep nfs-Suche) und der unbekannte Prozess ist verschwunden.
Seltsam, dass Kernel-Prozesse in keiner Weise markiert sind.

Nochmals vielen Dank an Sie beide. 😉

Akzeptierte Antwort:

netstat

Es gibt dort einen Prozess, Ihre Benutzer-ID ist einfach nicht eingeweiht, um zu sehen, was es ist. Dies ist eine Schutzschicht, die von lsof bereitgestellt wird das hält dich davon ab, das zu sehen. Führen Sie den Befehl einfach erneut aus, aber stellen Sie ihm sudo voran Befehl statt.

$ sudo netstat -antlp | grep 45136

Es gibt sogar eine Warnung in der Ausgabe von lsof oben.

(Nicht alle Prozesse konnten identifiziert werden, nicht-eigene Prozessinformationen werden nicht angezeigt, Sie müssten root sein, um alles zu sehen.)

Beispiel

$ 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

Wenn Sie mit netstat kein Glück haben vielleicht ss Wird besorgt. Sie müssen immer noch sudo verwenden , und die Ausgabe kann etwas kryptischer sein.

Beispiel

$ 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))

Prozess-ID immer noch nicht vorhanden?

Es gibt Fälle, in denen dem verwendeten TCP-Port einfach keine PID zugeordnet ist. Sie können in der Antwort von @derobert über NFS lesen, was eine davon ist. Da sind andere. Ich habe Fälle, in denen ich SSH-Tunnel verwende, um eine Verbindung zu Diensten wie IMAP herzustellen. Diese werden auch ohne Prozess-ID angezeigt.

In jedem Fall können Sie eine ausführlichere Form von netstat verwenden was zusätzliches Licht darauf werfen könnte, welcher Prozess letztendlich einen TCP-Port verwendet.

$ netstat --program --numeric-hosts --numeric-ports --extend

Beispiel

$ 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  -             

Wenn Sie bemerken, dass die Ausgabe INODES enthält, können wir den Prozess anhand dieser Informationen zurückverfolgen.

$ find -inum 152555007

Das zeigt Ihnen eine Datei, die Sie zu einem Prozess führen könnte.

Verwandt:Prozessüberwachung in Linux-Umgebung?

Referenzen

  • Zur PID portieren

Linux
  1. Wie kann man feststellen, welcher Prozess eine Datei erstellt?

  2. Wie lösche ich eine Datei, deren Dateiname nicht druckbare Zeichen enthält?

  3. Linux – Wie erkennt man, welche Linux-Distribution läuft?

  4. Welcher Prozess hat Pid 0?

  5. Wie erkennt ein Hintergrundprozess seine eigene Pid?

So finden Sie einen Prozessnamen mithilfe der PID-Nummer in Linux

So finden Sie den Prozessnamen anhand seiner PID

So finden Sie die PID und PPID eines Prozesses in Linux

Wie erkenne ich, welche Linux-Distribution ausgeführt wird?

Wie kann ich feststellen, welcher Prozess UDP-Verkehr unter Linux verursacht?

Wie man einen gerade gestarteten Prozess pipi bekommt