Próbowałem zamknąć tomcat za pomocą katalogu ./shutdown.sh
tomcat /bin
. Ale stwierdził, że serwer nie został poprawnie zamknięty. W związku z tym nie udało mi się ponownie uruchomić
Mój tomcat działa na porcie 8080
.
Chcę zabić uruchomiony proces tomcat 8080
. Najpierw chcę mieć listę procesów uruchomionych na określonym porcie (8080), aby wybrać proces do zabicia.
linux
unix
port
kill-process
veer7
źródło
źródło
Odpowiedzi:
Spowoduje
fuser 8080/tcp
to wydrukowanie PID procesu związanego z tym portem.A to
fuser -k 8080/tcp
zabije ten proces.Działa tylko w systemie Linux. Bardziej uniwersalne jest użycie
lsof -i4
(lub 6 dla IPv6).źródło
fuser
. Pobiera tylko plik, nie obsługuje-k
.fuser: command not found
, zainstaluj psmisc. W przypadku CentOS / RHEL 7 uruchomsudo yum install psmisc
Aby wyświetlić listę procesów nasłuchujących na porcie 8080:
Aby zabić dowolny proces nasłuchujący na porcie 8080:
lub bardziej gwałtownie:
(
-9
odpowiadaSIGKILL - terminate immediately/hard kill
sygnałowi: patrz Lista sygnałów zabicia i Do czego służy opcja -9 w poleceniu kill?) Jeśli nie podano żadnego sygnałukill
, wysyłany jest sygnał TERM aka-15
lubsoft kill
wysyłany, co czasami nie wystarcza do zabicia proces.).źródło
sudo
sudo lsof -i:8080
.Użyj polecenia
używane
grep java
jakotomcat
zastosowaniajava
jako ich procesy.Wyświetli listę procesów z numerem portu i identyfikatorem procesu
poprzednia liczba
/java
to identyfikator procesu. Teraz użyjkill
polecenia, aby zabić proces-9
oznacza, że proces zostanie zabity siłą.źródło
netstat
.Dodałbym tę linijkę, aby zabić tylko LISTEN na określonym porcie:
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
źródło
Możesz użyć polecenia lsof. Niech numer portu jak tutaj to 8090
To polecenie zwraca listę otwartych procesów na tym porcie.
Coś jak…
Aby zwolnić port, zabij proces, używając go (identyfikator procesu to 75782)…
Ten działał dla mnie. oto link z oryginalnego postu: link
źródło
Jeśli chcesz zabić proces działający na porcie 8080, najpierw musisz znaleźć numer identyfikacyjny procesu 8080 (PID), a następnie go zabić. Uruchom następującą komendę, aby znaleźć numer 8080 portu PID:
Tutaj,
Możesz więc teraz łatwo zabić swój PID za pomocą następującego polecenia:
Tutaj,
Możesz użyć jednego polecenia, aby zabić proces na określonym porcie za pomocą następującego polecenia:
Aby uzyskać więcej informacji, zobacz poniższy link Jak zabić proces na określonym porcie w systemie Linux
źródło
sudo kill -9 $(sudo lsof -t -i:8080)
pracował dla mnieNajlepszy sposób na zabicie wszystkich procesów na określonym porcie;
źródło
Wypisuje to na standardowe identyfikatory procesów wszystkich uruchomionych na
<port_number>
:Drukuje również niektóre rzeczy do stderr, więc:
Następnie możemy podać te identyfikatory procesów do
kill
polecenia:Możesz również włączyć tę funkcję, jeśli często to robisz:
źródło
Zdobądź PID zadania i zabij go.
źródło
lsof -ti:8080-8089 | xargs kill
.Aby poznać pid usługi działającej na danym porcie:
otrzymasz opis tego procesu. Teraz użyj kill lub kill -9 pid. Łatwo zabity.
na przykład
netstat -ap | grep :8080
Teraz:
Pamiętaj, aby uruchomić wszystkie polecenia jako
root
źródło
Jedna wkładka
wyjaśnienie tutaj: użyj kombinacji
lsof and kill
wybierz pid i użyj
kill
źródło
spróbuj tak
źródło
Wybierz numer portu i zastosuj polecenie grep in netstat, jak pokazano poniżej
Wyjście konsoli
Zabij usługę na podstawie PID (numer identyfikacyjny procesu)
źródło
lsof -i tcp:8000
To polecenie wyświetla informacje o procesie uruchomionym na porcie 8000kill -9 [PID]
To polecenie zabija procesźródło
Linux : Najpierw możesz znaleźć PID tego polecenia, jeśli znasz port:
przykład:-
Następnie podejmij proces zabijania. uruchom następujące polecenie:
zabij -9 PID
Przykład: -
zabij -9 15986
źródło
Linux : możesz użyć tego polecenia, jeśli znasz port:
AIX :
Następnie weź pierwszą kolumnę (przykład: f100050000b05bb8) i uruchom następującą komendę:
Zamknij proces.
źródło
Możesz znać listę wszystkich portów działających w systemie wraz z jej szczegółami (pid, adres itp.):
Możesz poznać szczegóły konkretnego numeru portu , podając numer portu w następującym poleceniu:
np .: sudo netstat -lutnp | grep -w '8080' Szczegóły zostaną podane w następujący sposób:
jeśli chcesz zabić proces za pomocą pid, to :
kill -9 {PID}
jeśli chcesz zabić proces przy użyciu numeru portu :
fuser -n tcp {port_number}
użyj,
sudo
jeśli nie możesz uzyskać do nich dostępu.źródło
kill -9 `fuser 8080/tcp|xargs -n 1`
, to polecenie również zabija proces nasłuchujący na porcie 8080 z połączeniem TCPźródło
Wynik: 80 / tcp: 1858 1867 1868 1869 1871
Zabij jeden po drugim
zabij -9 1858
źródło
W moim przypadku cent os ma problem z sugerowaną odpowiedzią. Więc użyłem następującego rozwiązania:
źródło
Pracuję nad systemem Yocto Linux, który ma ograniczony zestaw dostępnych narzędzi Linux. Chciałem zabić proces korzystający z określonego portu (1883).
Najpierw, aby zobaczyć, których portów słuchamy, użyłem następującego polecenia:
Następnie znalazłem nazwę procesu przy użyciu portu 1883 w następujący sposób:
Jak widać powyżej, jest to program
/usr/sbin/mosquitto
korzystający z portu 1883.Wreszcie zabiłem proces:
Użyłem,
systemctl
ponieważ w tym przypadku była to usługa systemowa.źródło
w oparciu o to, co powiedział @ veer7 :
jeśli chcesz wiedzieć, co było w porcie, zrób to zanim go zabijesz.
Użyj „ps” i numeru procesu, który Netstat zgłosił
źródło
Inna droga z Git Bash:
źródło
netstat -lt
fuser <port number>/tcp
kill <process id>
źródło
W systemie Windows tak będzie
netstat -ano | grep "8080"
i otrzymamy następujący komunikatTCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076
Możemy zabić PID za pomocą
taskkill /F /PID 10076
źródło