Wie der Titel schon sagt, betreibe ich mehrere Spieleserver, und jeder von ihnen hat die gleiche, name
aber unterschiedliche PID
und die gleiche port
Nummer. Ich möchte mit PID
dem Server übereinstimmen, der einen bestimmten Port überwacht, und dann möchte ich diesen Prozess beenden. Ich brauche das, um mein Bash-Skript zu vervollständigen.
Ist das überhaupt möglich? Weil es im Web noch keine Lösungen gefunden hat.
netstat: 80: unknown or uninstrumented protocol
hat den80
(nginx) -Port zum Testen von Zwecken verwendet. Nicht funktioniert.netstat -nlp | grep :80
stattdessennetstat: option requires an argument -- p
netstat
aufgerufen. Es hat eine andere Syntax.Kurzversion, die Sie an den Befehl kill übergeben können:
quelle
lsof -i4TCP:80 -sTCP:LISTEN -t
ist wahrscheinlich das, was Sie stattdessen wollen.kill -9 `lsof -i:80 -t`
zum leichteren Kopierennetstat -p -l | grep $PORT
undlsof -i :$PORT
Lösungen sind gut, aber ich bevorzuge diefuser $PORT/tcp
Erweiterungssyntax gegenüber POSIX (die funktionierencoreutils
) wie bei Pipe:Es druckt reine PID, damit Sie
sed
Magie herausfallen lassen können.Eine Sache, die
fuser
meine Liebhaber-Tools ausmacht , ist die Fähigkeit, Signale direkt an diesen Prozess zu senden (diese Syntax ist auch eine Erweiterung von POSIX):Außerdem wird -k von FreeBSD unterstützt: http://www.freebsd.org/cgi/man.cgi?query=fuser
quelle
netstat -nlp
sollte Ihnen die PID darüber mitteilen, was an welchem Port empfangsbereit ist.quelle
netstat: 80: unknown or uninstrumented protocol
hat den80
(nginx) -Port zum Testen von Zwecken verwendet. Nicht funktioniert.Da sockstat nicht nativ auf meinem Computer installiert war, habe ich die Antwort von stanwise gehackt, um stattdessen netstat zu verwenden.
quelle
Ich wollte programmgesteuert - nur mit Bash - den Prozess beenden, der an einem bestimmten Port abhört.
Nehmen wir an, der Port ist 8089, dann habe ich es so gemacht:
Ich hoffe das hilft jemand anderem! Ich weiß, dass es meinem Team helfen wird.
quelle
function kill-listener { lsof -i:$1 -t | xargs kill -9 }
Am Beispiel von Port 8089:kill-listener 8089
Syntax:
Beispiel: Um den an Port 4200 ausgeführten Prozess abzubrechen, führen Sie den folgenden Befehl aus
In Ubuntu getestet.
quelle
Unter Windows ist die Option netstat, um die PIDs abzurufen, -o und -p wählt einen Protokollfilter aus, z. B.: netstat -a -p tcp -o
quelle