doublon possible:
Recherche du processus utilisant un certain port sous Linux
J'utilise Ubuntu Linux 11.04. Comment puis-je écrire une expression de script Shell qui détecte le processus en cours d'exécution sur le port 4444, puis le tue?
Vous pouvez utiliser lsof
pour trouver le processus:
lsof -t -i:4444
n’indiquerait que le pid du processus d’écoute sur le port 4444. Vous pouvez simplement dire
kill `lsof -t -i:4444`
si tu étais courageux.
Vous utilisez lsof
:
# lsof -n | grep TCP | grep LISTEN | grep 4444
La sortie sera quelque chose comme:
pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)
Où la première colonne est le nom du processus et la deuxième colonne est l'identifiant du processus. Vous analysez ensuite la sortie, identifiez l’identifiant du processus (PID) et utilisez la commande kill
pour la tuer.
Sinon, vous pouvez utiliser netstat -ap
si lsof
n'est pas disponible sur votre système (car ce n'est pas sur un système busybox avec lequel je travaille régulièrement).
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`
Utilise netstat pour répertorier les sockets INET en écoute avec des ports numériques et des processus parents. Filtres pour la chaîne 4444, supprime la 7ème colonne (pid/nom du processus) et la scinde ensuite par "/" pour obtenir le pid. Passe cette commande à tuer.