107 votes

Déterminer le pid du processus écoutant sur un certain port

Comme le titre l'indique, je gère plusieurs serveurs de jeu, et chacun d'entre eux a le même problème. name mais différent PID et le port numéro. Je voudrais faire correspondre le PID du serveur qui écoute sur un certain port, et ensuite je voudrais tuer ce processus. J'en ai besoin pour terminer mon bash script.

Est-ce que c'est possible ? Parce que je n'ai pas encore trouvé de solutions sur le web.

3voto

dafky2000 Points 34

Comme sockstat n'était pas installé nativement sur ma machine, j'ai bidouillé la réponse de stanwise pour utiliser netstat à la place .

netstat -nlp | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\:2000" | awk '{print $7}' | sed -e "s/\/.*//g""

3voto

Glavin001 Points 787

Je voulais de manière programmée -- en utilisant uniquement Bash -- tuer le processus qui écoute sur un port donné.

Disons que le port est 8089, alors voici comment je l'ai fait :

badPid=$(netstat --listening --program --numeric --tcp | grep "::8089" | awk '{print $7}' | awk -F/ '{print $1}' | head -1)
kill -9 $badPid

J'espère que cela aidera quelqu'un d'autre ! Je sais que ça va aider mon équipe.

2voto

skyhawk Points 51

Sous Windows, l'option netstat pour obtenir les pid's est -o et -p sélectionne un filtre de protocole, par ex : netstat -a -p tcp -o

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X