Jak mówi tytuł, biegnę wieloma serwerami gry, a każdy z nich ma takie same name
, ale różnią się PID
, a port
numer. Chciałbym dopasować PID
serwer, który nasłuchuje na określonym porcie, a następnie chciałbym zakończyć ten proces. Potrzebuję tego, aby ukończyć mój skrypt bash.
Czy to w ogóle możliwe? Ponieważ nie znalazł jeszcze żadnych rozwiązań w sieci.
netstat: 80: unknown or uninstrumented protocol
używał80
portu (nginx) do testowania celów. Nie zadziałało.netstat -nlp | grep :80
zamiast tegonetstat: option requires an argument -- p
netstat
nazywa się Windows Native . Ma inną składnię.Krótka wersja, którą możesz przekazać, aby zabić polecenie:
źródło
lsof -i4TCP:80 -sTCP:LISTEN -t
jest prawdopodobnie tym, czego chcesz.kill -9 `lsof -i:80 -t`
dla ułatwienia kopiowanianetstat -p -l | grep $PORT
ilsof -i :$PORT
rozwiązania są dobre, ale wolęfuser $PORT/tcp
składnię rozszerzenia od POSIX (która działacoreutils
), jak z potokiem:drukuje czysty pid, więc możesz upuścić
sed
magię.Jedną rzeczą, która sprawia, że
fuser
moje ulubione narzędzia są możliwość bezpośredniego wysyłania sygnału do tego procesu (ta składnia jest również rozszerzeniem POSIX):FreeBSD obsługuje również -k: http://www.freebsd.org/cgi/man.cgi?query=fuser
źródło
netstat -nlp
powinien informować o PID, co nasłuchuje na którym porcie.źródło
netstat: 80: unknown or uninstrumented protocol
używał80
portu (nginx) do testowania celów. Nie zadziałało.Ponieważ sockstat nie był natywnie zainstalowany na moim komputerze, zhakowałem odpowiedź firmy Stanwise, aby zamiast tego użyć netstat.
źródło
Chciałem programowo - używając tylko Bash - zabić proces nasłuchujący na danym porcie.
Powiedzmy, że port to 8089, a oto jak to zrobiłem:
Mam nadzieję, że to pomoże komuś innemu! Wiem, że to pomoże mojemu zespołowi.
źródło
function kill-listener { lsof -i:$1 -t | xargs kill -9 }
przykładzie portu 8089:kill-listener 8089
Składnia:
Przykład: Aby zabić proces działający na porcie 4200, uruchom następujące polecenie
Przetestowano w Ubuntu.
źródło
w systemie Windows opcja netstat pobierająca pid to -o i -p wybiera filtr protokołu, np .: netstat -a -p tcp -o
źródło