Jak zabić proces na porcie na Ubuntu


488

Próbuję zabić proces w wierszu polecenia dla określonego portu w Ubuntu.

Jeśli uruchomię to polecenie, otrzymam port:

sudo lsof -t -i:9001

więc ... teraz chcę uruchomić:

sudo kill 'sudo lsof -t -i:9001'

Otrzymuję ten komunikat o błędzie:

ERROR: garbage process ID "lsof -t -i:9001".
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.

Próbowałem sudo kill 'lsof -t -i:9001'też


9
Do Twojej wiadomości, pytania dotyczące Ubuntu mają większą szansę na udzielenie odpowiedzi w części Ubuntu sieci StackExchange (StackOverflow): askubuntu.com
JScoobyCed

Odpowiedzi:


900

Chcesz użyć nieregularnego tyknięcia:

sudo kill -9 `sudo lsof -t -i:9001`

Jeśli to nie zadziała, możesz również użyć $()do interpolacji poleceń:

sudo kill -9 $(sudo lsof -t -i:9001)

43
Zapomniałeś dodać opcję sygnału. Treść powinna brzmieć:sudo kill -9 $(sudo lsof -t -i:9001)
Francesco Gramano

7
@FrancescoGramano: nie chcesz używać -9, chyba że musisz.
zellio

2
kiedy sudo killnie można zabić procesu, metoda @ putra.koreng działa dobrze
Fangxin

3
jeśli powyższe nie działa, spróbuj tego: stackoverflow.com/a/50515868/9339242
Arayan Singh

1
Czy ten system operacyjny jest niezależny czy specyficzny dla systemu Linux? Jeśli jest to specyficzne dla Linuksa, nawet to polecenie działaos.system("fuser -k 8080/tcp");
Ridhuvarshan


78

DLA UBUNTU 1- Znajdź aplikację / proces korzystający z pro, wpisz:

sudo netstat -lpn |grep :8080

i naciśnij Enter.

Otrzymasz wyjście podobne do tego

tcp6       0      0 :::8080                 :::*                    LISTEN      6782/java

2- Mam identyfikator procesu, który wynosi 6782, teraz jest to proces korzystający z portu 8080.

3- Zabij proces, wpisz: kill 6782

kill 6782

3
Krótka i
ostra

1
Działa idealnie
Tyler Bell

Czy możesz napisać, jak używasz powyższego polecenia?
Mohit Singh

1
Działa świetnie, podczas gdy na moim serwerze Ubuntu 18.04 nie znaleziono poleceń w odpowiedziach z większą liczbą głosów pozytywnych. Dzięki!
Salivan


35

Istnieje pewien proces, który nie jest wyświetlany przy użyciu normalnej komendy netstat, więc musisz to sprawdzić za pomocą sudo.

Zrobić sudo netstat -lpn |grep :8080. Proces uruchamiany przez system nie wyświetla PID, aby uzyskać PID tego procesu, musisz go uruchomićsudo

A następnie zabij proces za pomocą portu 8080. Być może będziesz musiał użyć sudotutaj. Aby zabić ten proces, użyjsudo kill -9 PID


19

Użyj polecenia killport :

sh killport 9001 

Aby pobrać powłokę, możesz użyć wget:

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport

1
jeśli to nie działa, oznacza to, że port docelowy jest już zamknięty
Abdennour TOUMI

17

Aby zabić w usłudze portowej w Ubuntu, wprowadź poniższe polecenie w terminalu

W terminalu:

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp

Ten prosty świetnie sobie radzi.
Tri

15

Możesz również użyć do tego utrwalacza (domyślnie wysyła SIGKILL): sudo fuser -k 9001/tcp



12

Aby zabić proces działający na numerze portu9001

sudo kill -9 $(sudo lsof -t -i:9001)


lsof   - list of files(Also used for to list related processes)

-t     - show only process ID

-i     - show only internet connections related process

:9001  - show only processes in this port number

kill   - command to kill the process

-9     - forcefully

sudo   - command to ask admin privilege(user id and password).

po więcej możesz odwiedzić mojego bloga


11

Aby najpierw zabić proces oparty na porcie, musimy znaleźć odpowiedni pid dla danego portu i zabić go za pomocą tego pid,

W moim przypadku chciałem uzyskać pid (identyfikator procesu) portu 3000:

netstat -ltnp | grep -w '3000'

następnie znajdź pid, który słucha tcp

tcp6       0      0 :::3000                 :::*                    LISTEN      29972/node  

dostaniesz pid 29972

Aby zabić ten pid, użyj poniższego polecenia

kill -9 29972

pseudo kod dla procesu zabicia na podstawie portu

 netstat -ltnp | grep -w 'PORT'

i

kill -9 PID


5

Zabij PORT:

sudo ważne jest, aby pokazać identyfikator procesu.

$ sudo netstat -antlp | grep 45136
tcp      0      0 0.0.0.0:45136         0.0.0.0:*        LISTEN           **-** 

$ kill -9 45136

5

Użyj polecenia

 netstat -plten |grep java

używany grep java jako tomcat używa java jako swoich procesów.

Wyświetli listę procesów z numerem portu i identyfikatorem procesu

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

liczba przed / java jest identyfikatorem procesu. Teraz użyj polecenia kill, aby zabić proces

kill -9 16085

-9 oznacza, że ​​proces zostanie zabity siłą.


4

sudo fuser -n tcp -k [numer_portu]

sudo lsof -t -i: [numer_portu]


3

Użyj tego do zabijania procesu, który działa na porcie o numerze „9001”

 kill $(lsof -t -i:9001)

Zbędne w przypadku innych przykładów, w tym zaakceptowanej odpowiedzi.
Kenster

3

Spróbuj tego:

lsof -i :port

or 

sudo kill $(sudo lsof -t -i:8000)

or

kill -9 <pid>

or 

sh killport 8000

Jestem na Ubuntu 17 i kill -9 <pid>działał świetnie dla mnie!
protoEvangelion,


1

Proces składa się z dwóch etapów:

  1. Poznaj identyfikator procesu na porcie nr. 8080 (może być dowolny)
  2. Zabij proces o tym identyfikatorze 8689 (może być inny)

    fuser -n tcp 8080
    
    #o/p 8080/tcp    8689
    
    kill -9 8689
    


1

Wyświetla aktywne połączenia TCP, porty, na których komputer nasłuchuje.

netstat -tupln

To wyświetli listę wszystkich połączeń wzdłuż pid. Znajdź i skopiuj pid i uruchom następujące polecenie. Upewnij się, że zastąpiłeś rzeczywisty identyfikator w następującym poleceniu.

kill -9 <copied pid>

-9 Użyj, aby wymusić zabicie połączenia.


1

Spróbuj na przykład sudo fuser PORT/tcp -k zastąpić PORTportem, który chcesz zabić80


0

kill -9 $ (lsof -t -i: 9001)

może być użyty do zabicia procesu. Możesz użyć dowolnego numeru portu zamiast 9001


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.