Cara membunuh proses pada port di ubuntu

488

Saya mencoba untuk mematikan proses di baris perintah untuk port tertentu di ubuntu.

Jika saya menjalankan perintah ini saya mendapatkan port:

sudo lsof -t -i:9001

jadi ... sekarang saya ingin menjalankan:

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

Saya mendapatkan pesan kesalahan ini:

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.

Saya mencoba sudo kill 'lsof -t -i:9001'juga

Tampa
sumber
9
FYI, pertanyaan Ubuntu memiliki peluang lebih baik untuk dijawab pada bagian Ubuntu dari jaringan StackExchange (StackOverflow): askubuntu.com
JScoobyCed

Jawaban:

900

Anda ingin menggunakan backtick bukan centang reguler:

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

Jika itu tidak berhasil, Anda juga bisa menggunakan $()interpolasi perintah:

sudo kill -9 $(sudo lsof -t -i:9001)
Zellio
sumber
43
Anda lupa menambahkan opsi sinyal. Harus dibaca:sudo kill -9 $(sudo lsof -t -i:9001)
Francesco Gramano
7
@ FrancescoGramano: Anda tidak ingin menggunakan -9 kecuali Anda harus.
zellio
2
ketika sudo killtidak dapat mematikan prosesnya, metode @ putra.koreng bekerja dengan baik
Fangxin
3
jika di atas tidak berfungsi maka coba ini: stackoverflow.com/a/50515868/9339242
Arayan Singh
1
Apakah OS ini independen atau khusus untuk linux? Jika Linux spesifik maka, bahkan perintah ini berfungsios.system("fuser -k 8080/tcp");
Ridhuvarshan
246

kamu bisa menggunakan

fuser -n tcp -k 9001 

lihat lebih detail di wikipedia

putra.koreng
sumber
1
Jika tidak melakukan root: sudo fuser -n tcp -k 9001
JLavoie
78

UNTUK UBUNTU 1- Temukan aplikasi / proses apa yang menggunakan pro, ketik:

sudo netstat -lpn |grep :8080

dan tekan Enter.

Anda akan mendapatkan output yang mirip dengan ini

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

2- Saya sudah mendapatkan proses ID, yaitu 6782, sekarang ini adalah proses yang menggunakan port 8080.

3 - Bunuh prosesnya, ketik: kill 6782

kill 6782
Mohit Singh
sumber
3
Jawaban singkat dan
tajam
1
Bekerja dengan sempurna
Tyler Bell
Bisakah Anda menuliskan bagaimana Anda menggunakan perintah di atas?
Mohit Singh
1
Bekerja dengan baik sementara perintah di asnwers dengan lebih banyak upvotes tidak ditemukan di server Ubuntu 18.04 saya. Terima kasih!
Salivan
38

Cara terbaik untuk membunuh port di terminal ubuntu adalah fuser -k 9001/tcp

Wisnu S Babu
sumber
3
Bekerja tanpa cacat untukku
Temui Zaveri
Ini juga berhasil untuk saya. Ini harus menjadi jawaban yang diterima.
CodeSlave
35

Ada beberapa proses yang tidak ditampilkan menggunakan perintah netstat normal, jadi Anda harus memeriksanya menggunakan sudo.

Lakukan sudo netstat -lpn |grep :8080. Proses yang berjalan dengan sistem tidak menunjukkan PID, untuk mendapatkan PID dari proses ini Anda harus menjalankannya menggunakansudo

Dan kemudian bunuh proses menggunakan port 8080. Anda mungkin harus menggunakan di sudosini juga. Jadi untuk mematikan proses ini gunakansudo kill -9 PID

Pengguna16119012
sumber
19

Gunakan perintah killport :

sh killport 9001 

Untuk mengunduh shell, Anda dapat menggunakan wget:

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport
Abdennour TOUMI
sumber
1
jika tidak berfungsi, itu berarti port target sudah ditutup
Abdennour TOUMI
17

Untuk mematikan layanan port di ubuntu, Masukkan perintah di bawah ini di terminal

Di Terminal:

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp
Abhishek-Saini
sumber
Sederhana ini bagus sekali.
Tri
15

Anda juga dapat menggunakan fuser untuk melakukan itu (mengirim SIGKILL secara default): sudo fuser -k 9001/tcp

Dmitriusan
sumber
15

cukup masukkan

    fuser -k -n tcp 3000

di terminal, di mana 3000 adalah nomor port Anda

Sai Kumar
sumber
1
menggunakan fuser: Tunjukkan proses mana yang menggunakan file, soket, atau sistem file bernama -k: Singkatan dari kill -n: Netstat tcp: Itu adalah protokol untuk menggunakan port Anda 3000: Port kustom di sini adalah tautan: askubuntu.com/questions / 207609 / i-cant-kill-a-port-process
Kaushik shrimali
12

Untuk mematikan proses yang berjalan pada nomor Port9001

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

untuk lebih lanjut Anda dapat mengunjungi blog saya

Arayan Singh
sumber
11

Untuk mematikan proses berdasarkan port terlebih dahulu kita harus mencari pid yang relevan untuk port yang diberikan dan membunuh menggunakan pid itu,

Dalam kasus saya, saya ingin mendapatkan pid (proses id) dari 3000 port:

netstat -ltnp | grep -w '3000'

kemudian temukan pid yang sedang mendengarkan tcp

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

Anda akan mendapatkan pid 29972

Untuk mematikan pid ini gunakan perintah di bawah ini

kill -9 29972

kode pseudo untuk proses kill berdasarkan port

 netstat -ltnp | grep -w 'PORT'

dan

kill -9 PID
Prakash Nagaraj
sumber
8

Gunakan ini:

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

Bunuh PORT:

sudo Penting untuk menunjukkan id proses.

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

$ kill -9 45136
Guna Sekaran
sumber
5

Gunakan perintah

 netstat -plten |grep java

digunakan java grep sebagai kucing jantan menggunakan java sebagai proses mereka.

Ini akan menampilkan daftar proses dengan nomor port dan id proses

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

angka sebelum / java adalah id proses. Sekarang gunakan perintah kill untuk mematikan proses

kill -9 16085

-9 menyiratkan proses akan dibunuh dengan paksa.

kumbhanibhavesh
sumber
4

sudo fuser -n tcp -k [port_number]

sudo lsof -t -i: [port_number]

Javad
sumber
3

Gunakan ini untuk proses pembunuhan yang berjalan pada nomor port "9001"

 kill $(lsof -t -i:9001)
arvind
sumber
Redundan dengan contoh lain, termasuk jawaban yang diterima.
Kenster
3

Coba ini:

lsof -i :port

or 

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

or

kill -9 <pid>

or 

sh killport 8000
Ranvijay Sachan
sumber
Saya menggunakan Ubuntu 17 dan kill -9 <pid>bekerja dengan baik untuk saya!
protoEvangelion
1
sudo kill `sudo lsof -t -i:9001`

Anda tidak perlu menambahkan -9opsi sinyal

davidblumer
sumber
1

Dua langkah prosesnya:

  1. Ketahui id proses pada port no. 8080 (dapat berupa apa saja)
  2. Bunuh proses id tersebut 8689 (bisa berbeda)

    fuser -n tcp 8080
    
    #o/p 8080/tcp    8689
    
    kill -9 8689
    
Ratnesh Kushwaha
sumber
1

Anda dapat bekerja menggunakan node ini

npm install freethenport -g

kemudian

node freethenport 9001
Adeojo Emmanuel IMM
sumber
1

Menampilkan koneksi TCP aktif, port tempat komputer mendengarkan.

netstat -tupln

Ini akan mencantumkan Anda semua koneksi di sepanjang pid. Temukan dan salin pid dan jalankan perintah berikut. Pastikan Anda mengganti dengan id aktual dalam perintah berikut.

kill -9 <copied pid>

-9 Digunakan untuk mematikan koneksi secara paksa.

Lalit Mohan
sumber
1

Coba sudo fuser PORT/tcp -k Ganti PORTdengan port yang ingin Anda bunuh, misalnya80

Armin
sumber
0

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

dapat digunakan untuk mematikan proses. Anda dapat menggunakan nomor port apa saja, bukan 9001

Charuka Herath
sumber
-1

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

Albert Davies
sumber