[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-team] lsof!!! (was:Port XXX already in use)
On Wed, Sep 29, 1999 at 03:15:03PM +0200, Frédéric Detienne wrote:
> Exact.
> Un bon truc est de faire un
> netstat -a
> et de voir si le port est toujours utilise. Si oui, il dit LISTEN a la fin de la ligne => tu dois tuer le process qui reste avec un bon kill bien senti.
> Si le port n'est plus utilise, il dit WAIT ou autre chose => dans ce cas, le service n'a pas libere le port proprement et il faut attendre que le kernel time out et libere le port. Ca prend quelques minutes.
> A noter que "netstat -a" montre les ports utilises et utilise le _NOM_ du service si le port est defini dans /etc/services. Sinon, il utilise le _NUMERO_ du port.
> Tu peux utiliser "netstat -n -a" pour avoir tout en numerique.
Note que netstat -a ne t'avance pas nécessairement puisqu'il ne te donne pas le nom du processus (ni le pid)
qui utilise ce port. Pour ça, il y a lsof (LiSt Open Files), qui marche aussi pour les sockets TCP/IP:
lsof -i[protocol][@hostname|hostaddr][:service|port]
un exemple: la liste de tous les processus qui utilisent le port 80:
pab:~> sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd 234 root 16u inet 367 TCP *:www (LISTEN)
httpd 1735 root 16u inet 367 TCP *:www (LISTEN)
httpd 7794 root 16u inet 367 TCP *:www (LISTEN)
httpd 19728 root 16u inet 367 TCP *:www (LISTEN)
httpd 19730 root 16u inet 367 TCP *:www (LISTEN)
httpd 19731 root 16u inet 367 TCP *:www (LISTEN)
httpd 19732 root 16u inet 367 TCP *:www (LISTEN)
httpd 19823 root 16u inet 367 TCP *:www (LISTEN)
httpd 19824 root 16u inet 367 TCP *:www (LISTEN)
httpd 19825 root 16u inet 367 TCP *:www (LISTEN)
(je suis passé par sudo pour éxécuter la commande en tant que root, pour voir tout le monde - sinon, un user
normal ne voit que ses processus à lui).
> voila.
et voilà encore nettement mieux ;-)))
> Piette François wrote:
> > >En relançant un service sur un port, j'ai parfois le
> > >message "Port XXX already in use"
> > >Comment débloquer cela sans "rebooter la machine" ?
> > C'est un message qui provient du stack TCP/IP et qui signifie que le service
> > que tu lance essaye d'utiliser un port qui est déjà utilisé par autre chose.
> > Es-tu certain que le service que tu relance a été arrêté correctement ? Le
> > principe pour en sortir consite à tuer le service (programme) qui utilise le
> > port en question.
--
-o) / Pascal Bleser ATOS Payment Systems|
/\\ \ C++/UNIX Development Aachen, Germany|
_\_v \<guru@linuxbe.org> <pbleser@atos-group.com>|
---------------------------------------------------|
/earth is 98% full... please delete anyone you can.:
---------------------------------------------------'
---------
Visit the Linux Supertore Online: http://www.redcorp.com !
If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.