GNU/Linux >> Tutoriels Linux >  >> Linux

Comment identifier un processus qui n'a pas de PID ?

J'ai un processus qui écoute 2 ports :45136/tcp et 37208/udp (en fait je suppose que c'est le même processus). Mais netstat ne renvoie aucun pid :

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

Même résultat avec "grep 37208".

J'ai aussi essayé lsof :

lsof -i TCP:45136

Mais ça ne retourne rien.
C'est une nouvelle installation de squeeze et je ne sais vraiment pas ce que pourrait être ce processus. Une idée ?

RÉPONSE
Grâce à vos commentaires, j'ai découvert ce que c'était. J'ai désinstallé nfs-server nfs-common (après une recherche dkpg –get-selections | grep nfs) et le processus inconnu a disparu.
Étrange bien que les processus du noyau ne soient marqués d'aucune façon.

Merci encore à vous deux. 😉

Réponse acceptée :

netstat

Il y a un processus là-bas, votre ID utilisateur n'est tout simplement pas au courant de ce que c'est. Il s'agit d'une couche de protection fournie par lsof ça t'empêche de voir ça. Réexécutez simplement la commande mais préfixez-la en utilisant le sudo commande à la place.

$ sudo netstat -antlp | grep 45136

Il y a même un avertissement à ce sujet dans la sortie de lsof en haut.

(Tous les processus ne peuvent pas être identifiés, les informations sur les processus non détenus ne seront pas affichées, vous devrez être root pour tout voir.)

Exemple

$ 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

Si vous n'avez pas de chance avec netstat peut-être ss ça ira. Vous devrez toujours utiliser sudo , et la sortie peut être un peu plus cryptée.

Exemple

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

L'ID de processus n'est toujours pas là ?

Il y a des cas où il n'y a tout simplement pas de PID associé au port TCP utilisé. Vous pouvez en savoir plus sur NFS, dans la réponse de @ derobert, qui en fait partie. Il y en a d'autres. J'ai des cas où j'utilise des tunnels ssh pour me reconnecter à des services tels que IMAP. Ceux-ci s'affichent également sans ID de processus.

Dans tous les cas, vous pouvez utiliser une forme plus détaillée de netstat ce qui pourrait apporter un éclairage supplémentaire sur le processus qui utilise finalement un port TCP.

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

Exemple

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

Si vous remarquez que la sortie inclut INODES afin que nous puissions revenir en arrière dans le processus en utilisant ces informations.

$ find -inum 152555007

Ce qui vous montrera un fichier qui pourrait vous conduire à un processus.

Connexe :Surveillance des processus dans un environnement Linux ?

Références

  • Port vers PID

Linux
  1. Comment trouver l'ID de processus dans Ubuntu ?

  2. Comment puis-je tuer un processus par nom au lieu de PID?

  3. Comment puis-je savoir quel processus utilise swap?

  4. Comment identifier le port d'un processus ?

  5. Comment identifier la distribution Linux en cours d'exécution ?

Comment trouver un nom de processus à l'aide d'un numéro PID sous Linux

Comment trouver le nom du processus à partir de son PID

Comment trouver le PID et le PPID d'un processus sous Linux

Comment obtenir l'ID de processus pour tuer un processus nohup ?

Comment obtenir le PID par nom de processus ?

Comment obtenir le pid du processus qui vient de démarrer