Comment puis-je trouver l'ID de processus et arrêter le processus qui fonctionne sur le port 8080 sur un Mac?
Sur Ubuntu cela fonctionne:
ps -aux
et je peux trouver le processus et courir:
kill -9 pid
ps -aux
ne semblait pas fonctionner, comment puis-je faire cela sur Mac OS X Lion?
Si vous souhaitez trouver et tuer tous les processus conformes à une chaîne, vous pouvez également utiliser ce qui suit sur un Mac OSX:
ps aux | grep <string> | awk '{print $1}' | <Sudo> xargs kill -9
Fondamentalement, ce que cela va faire est que cela trouvera (GREP) tous les processus exécutés actuellement sur votre système correspondant à l'AWK obtient le PID, qui dans la commande PS est la deuxième colonne et que le dernier prend les arguments de Awk et tue le processus.
Utilisez Sudo, uniquement si l'utilisateur actuel n'a pas de droit à tuer un processus et si vous avez un accès sudo sur votre système.
Je crois ps -ef
sur Mac est presque équivalente à ps -aux
sur Linux.
Pour obtenir ce que PID a Port 8080 en cours d'utilisation: lsof -P | grep 8080
Les champs planent sur:
[mini-nevie:~] nevinwilliams% lsof -P | head -1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
J'ai commencé ttcp -rs
qui écoute sur le port 5001.
mini-nevie:~] nevinwilliams% lsof -P | grep 5001
ttcp 27999 nevinwilliams 3u IPv4 0xb70c1f66028d6961 0t0 TCP *:5001 (LISTEN)
et en effet, PID 27999 correspond au PID du processus ttcp
j'ai lancé.
Pour rester à jour, pour MacOS:
ps -e | grep python | awk '{print "Sudo kill -9", $1}' | sh
Pour Linux:
ps -ax | grep python | awk '{print "Sudo kill -9", $1}' | sh