[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-team] lsof!!! (was:Port XXX already in use)



Aah ben de fait! je ne la connaissais pas, celle-la! Et c'est pas faute d'avoir cherche !

Tres treees pratique ! Merci.

	fred.

Pascal Bleser wrote:
> 
> 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.
---------
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.