Comme le titre l'indique, j'exécute plusieurs serveurs de jeu, et chacun d'eux a le même name
mais différent PID
et le port
nombre. Je voudrais faire correspondre le PID
serveur qui écoute sur un certain port, puis je voudrais tuer ce processus. J'en ai besoin pour terminer mon script bash.
Est-ce que c'est possible? Parce qu'il n'a pas encore trouvé de solutions sur le web.
netstat: 80: unknown or uninstrumented protocol
utilisé le80
port (nginx) pour tester les purpoes. Pas travaillé.netstat -nlp | grep :80
plutôtnetstat: option requires an argument -- p
netstat
est appelée. Il a une autre syntaxe.Version courte que vous pouvez passer à la commande kill:
la source
lsof -i4TCP:80 -sTCP:LISTEN -t
est probablement ce que vous voulez, à la place.kill -9 `lsof -i:80 -t`
pour faciliter la copienetstat -p -l | grep $PORT
et leslsof -i :$PORT
solutions sont bonnes mais je préfère lafuser $PORT/tcp
syntaxe d'extension à POSIX (qui fonctionne pourcoreutils
) comme avec pipe:il imprime du pur pid pour que vous puissiez abandonner la
sed
magie.Une chose qui rend
fuser
mes outils amoureux est la capacité d'envoyer directement un signal à ce processus (cette syntaxe est également une extension de POSIX):-K est également pris en charge par FreeBSD: http://www.freebsd.org/cgi/man.cgi?query=fuser
la source
netstat -nlp
devrait vous dire le PID de ce qui écoute sur quel port.la source
netstat: 80: unknown or uninstrumented protocol
utilisé le80
port (nginx) pour tester les purpoes. Pas travaillé.Comme sockstat n'était pas installé nativement sur ma machine, j'ai piraté la réponse de stanwise pour utiliser netstat à la place.
la source
Je voulais par programme - en utilisant uniquement Bash - tuer le processus en écoute sur un port donné.
Disons que le port est 8089, alors voici comment je l'ai fait:
J'espère que ça aidera quelqu'un d'autre! Je sais que cela va aider mon équipe.
la source
function kill-listener { lsof -i:$1 -t | xargs kill -9 }
En utilisant votre exemple de port 8089:kill-listener 8089
Syntaxe:
Exemple: pour arrêter le processus en cours d'exécution sur le port 4200, exécutez la commande suivante
Testé sous Ubuntu.
la source
sous windows, l'option netstat pour obtenir le pid est -o et -p sélectionne un filtre de protocole, ex .: netstat -a -p tcp -o
la source