Ubuntu'daki bir limanda bir süreç nasıl öldürülür


488

Ubuntu belirli bir bağlantı noktası için komut satırında bir işlemi öldürmeye çalışıyorum.

Bu komutu çalıştırırsanız, bağlantı noktası olsun:

sudo lsof -t -i:9001

yani ... şimdi koşmak istiyorum:

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

Bu hata mesajını alıyorum:

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.

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


9
FYI, Ubuntu sorularının StackExchange
JScoobyCed

Yanıtlar:


900

Backtick'i normal kene değil kullanmak istiyorsunuz:

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

Bu işe yaramazsa $(), komut enterpolasyonu için de kullanabilirsiniz :

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

43
Sinyal seçeneğini eklemeyi unuttunuz. Okumalı:sudo kill -9 $(sudo lsof -t -i:9001)
Francesco Gramano

7
@FrancescoGramano: zorunlu olmadıkça -9 kullanmak istemezsiniz.
zellio

2
zaman sudo killsüreci, @ putra.koreng 'öldüremem ler yöntem iyi çalışıyor
Fangxin

3
yukarıdaki çalışmazsa, o zaman bunu deneyin: stackoverflow.com/a/50515868/9339242
Arayan Singh

1
Bu işletim sistemi bağımsız mı yoksa linux'a mı özgü? Linux'a özgü ise, bu komut bile çalışıros.system("fuser -k 8080/tcp");
Ridhuvarshan


78

UBUNTU İÇİN 1- Pro'yu hangi uygulamanın / işlemin kullandığını bulun, şunu yazın:

sudo netstat -lpn |grep :8080

ve Enter tuşuna basın.

Buna benzer bir çıktı alacaksınız

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

2- 6782 işlem kimliğine sahibim, şimdi bu 8080 numaralı bağlantı noktasını kullanan işlem.

3- Süreci öldür, şunu yaz: kill 6782

kill 6782

3
Kısa ve Net Cevap
Vikas Kukreti

1
Mükemmel çalıştı
Tyler Bell

Yukarıdaki komutu nasıl kullandığınızı yazabilir misiniz?
Mohit Singh

1
Ubuntu 18.04 sunucumda daha fazla oy içeren asnwers komutları bulunamadığında harika çalıştı. Teşekkürler!
Salivan


35

Normal netstat komutu kullanılarak gösterilmeyen bazı işlemler vardır, bu yüzden kullanarak kontrol etmelisiniz. sudo .

Yap sudo netstat -lpn |grep :8080. Sistem tarafından çalışan işlem PID göstermez, bu işlemin PID'sini almak için bunu kullanarak çalıştırmanız gerekir.sudo

Ve sonra bağlantı noktasını kullanarak işlemi öldürün 8080. sudoBurada da kullanmanız gerekebilir . Yani bu işlemi kullanmak içinsudo kill -9 PID


19

Killport komutunu kullan :

sh killport 9001 

Kabuğu indirmek için şunları kullanabilirsiniz wget:

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

1
eğer çalışmazsa, hedef portun zaten kapalı olduğu anlamına gelir
Abdennour TOUMI

17

Ubuntu'da bağlantı noktası hizmetini öldürmek için terminalde aşağıdaki komutu girin

Terminalde:

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

Bu basit olan harika.
Tri

15

Bunu yapmak için kaynaştırıcı da kullanabilirsiniz (varsayılan olarak SIGKILL gönderir): sudo fuser -k 9001/tcp


15

sadece gir

    fuser -k -n tcp 3000

terminalde, 3000 bağlantı noktası numaranızdır


1
fuser kullanma: Hangi işlemlerin adlandırılmış dosyaları, yuvaları veya dosya sistemlerini kullandığını göster -k: Öldürme anlamına gelir -n: Netstat tcp: Bu bağlantı noktası 3000'inizi kullanmak için bir protokoldür: Özel bağlantı noktası burada bağlantıdır: askubuntu.com/questions / 207609 / i-cant-a-port-process
Kaushik shrimali

12

Bağlantı noktası numarasında çalışan bir işlemi öldürmek için9001

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).

daha fazlası için blogumu ziyaret edebilirsiniz


11

İşlemi önce limana göre öldürmek için, verilen port için ilgili pideyi bulmalı ve bu pid'i kullanarak öldürmeliyiz,

Benim durumumda 3000 port pid (süreç kimliği) almak istedim:

netstat -ltnp | grep -w '3000'

sonra tcp dinleyen pid bul

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

29972 pid alacaksınız

Bu pid'i öldürmek için aşağıdaki komutu kullanın

kill -9 29972

bağlantı noktasına dayalı kill işlemi için sözde kod

 netstat -ltnp | grep -w 'PORT'

ve

kill -9 PID


5

PORT'u öldür:

sudo işlem kimliğini göstermek önemlidir.

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

$ kill -9 45136

5

Komutu kullanın

 netstat -plten |grep java

Tomcat işlemleri olarak java'yı kullandığından grep java'yı kullandı.

Bağlantı noktası numarası ve işlem kimliğine sahip işlemlerin listesini gösterecektir

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

/ java öncesi sayı bir işlem kimliğidir. Şimdi işlemi öldürmek için kill komutunu kullanın

kill -9 16085

-9, sürecin zorla öldürüleceğini ima ediyor.


4

sudo kaynaştırıcı -n tcp -k [port_numarası]

sudo lsof -t -i: [port_numarası]


3

"9001" bağlantı noktası numarası üzerinde çalışan öldürme işlemi için bunu kullanın

 kill $(lsof -t -i:9001)

Kabul edilen cevap da dahil olmak üzere diğer örneklerle gereksizdir.
Kenster

3

Bunu dene:

lsof -i :port

or 

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

or

kill -9 <pid>

or 

sh killport 8000

Ubuntu 17'deyim ve kill -9 <pid>benim için harika çalıştı!
protoEvangelion

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

-9sinyal seçeneğini eklemek zorunda değilsiniz


1

İki aşamalı süreci:

  1. Bağlantı noktası no. 8080 (herhangi biri olabilir)
  2. 8689 numaralı kimliğin öldürme işlemi (farklı olabilir)

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

1

düğümü kullanarak bunu çalışabilirsin

npm install freethenport -g

sonra

node freethenport 9001

1

Etkin TCP bağlantılarını, bilgisayarın dinlediği bağlantı noktalarını görüntüler.

netstat -tupln

Size pid boyunca tüm bağlantıyı listeler. Pid'i bulup kopyalayın ve aşağıdaki komutu çalıştırın. Aşağıdaki komutta, değerini gerçek id ile değiştirdiğinizden emin olun.

kill -9 <copied pid>

-9 bağlantıyı zorla öldürmek için kullanın.


1

Örneğin, öldürmek istediğiniz bağlantı noktasıyla sudo fuser PORT/tcp -k değiştirmeyi deneyinPORT80


0

öldür -9 $ (lsof -t -i: 9001)

süreci öldürmek için kullanılabilir. 9001 yerine herhangi bir bağlantı noktası numarası kullanabilirsiniz


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.