Ce guide détaille comment identifier et résilier les processus Linux liés à des ports réseau spécifiques. Ceci est crucial pour le dépannage des applications non réactifs ou la libération de ports pour d'autres services. Nous explorerons plusieurs outils de ligne de commande pour accomplir cette tâche efficacement.
Introduction
Plusieurs processus peuvent utiliser simultanément des ports réseau. Un processus insensible peut perturber la fonctionnalité des applications ou la disponibilité du service, nécessitant une résiliation pour libérer le port occupé. Par exemple, un serveur Web Apache non réactif (généralement à l'aide du port 80 ou 443) nécessite la terminaison et le redémarrage pour restaurer l'accessibilité du site Web. Ce didacticiel couvre l'utilisation des commandes fuser
, lsof
, netstat
et ss
pour localiser et terminer ces processus.
Identification et résiliation des processus avec fuser
La commande fuser
identifie les processus à l'aide de fichiers ou de sockets spécifiques. Cela fait partie du package psmisc
; Installez-le si nécessaire en utilisant le gestionnaire de packages de votre distribution (par exemple, sudo apt install psmisc
sur Debian / Ubuntu, sudo pacman -S psmisc
sur arch linux).
Identifiez le processus: utilisez fuser<port_number> /tcp</port_number>
(ou /udp
pour UDP). Par exemple, fuser 8080/tcp
affiche des processus à l'aide du port TCP 8080.
Terminez le processus: fuser -k 8080/tcp
termine les processus à l'aide du port TCP 8080. Notez que les ports peuvent rester brièvement dans un état TIME_WAIT
après la fin.
Utilisation lsof
pour identifier et tuer les processus
lsof
(liste des fichiers ouverts) fournit des informations détaillées sur les fichiers ouverts et les processus associés.
Trouvez l'ID de processus (PID): sudo lsof -i :<port_number></port_number>
Répertorie les processus à l'aide du port spécifié. Par exemple, sudo lsof -i :8080
montre des processus à l'aide du port 8080. Localisez le PID.
Terminez le processus: utilisez sudo kill -9<pid></pid>
, Remplacement<pid></pid>
avec l'ID de processus. -9
envoie un signal SIGKILL
puissant.
Commande lsof
en une ligne pour la terminaison:
Un liner concis combine l'identification et la terminaison des processus: kill -9 $(lsof -t -i:8080 -sTCP:LISTEN)
. Cela tue les processus à écouter sur le port TCP 8080. Utilisez avec prudence; SIGKILL
est énergique.
netstat
et ss
pour la résiliation des services
netstat
et ss
(statistiques de socket) affichent les détails de la connexion du réseau. ss
est généralement préféré pour son efficacité et sa sortie plus claire.
Identifiez le service: utilisez sudo netstat -tnlp | grep<service_name></service_name>
ou sudo ss -tnlp | grep<service_name></service_name>
Pour trouver le PID du service (par exemple, grep apache
).
Terminer le service: utilisez sudo kill<pid></pid>
ou sudo kill -9<pid></pid>
pour résilier le processus.
Questions fréquemment posées (FAQ)
(Cette section reste largement inchangée par rapport à l'original, car il fournit des informations précieuses.)
Conclusion
fuser
, lsof
, netstat
et ss
offrent des méthodes robustes pour gérer les processus et les ports. Choisissez l'outil le mieux adapté à vos besoins et faites toujours preuve de prudence lors de la fin des processus avec force. N'oubliez pas le potentiel d'indisponibilité brève du port en raison de l'état TIME_WAIT
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!