it-swarm.asia

Bagaimana cara mematikan proses yang saat ini menggunakan port di localhost di windows?

Bagaimana cara menghapus proses/aplikasi saat ini yang sudah ditetapkan ke port?

Sebagai contoh: localhost:8080

234
KavinduWije

Langkah 1  

Jalankan baris perintah sebagai Administrator. Kemudian jalankan perintah menyebutkan di bawah ini ... ketik nomor port Anda di yourPortNumber

netstat -ano | findstr: yourPortNumber

Area lingkaran berwarna merah menunjukkan PID (pengidentifikasi proses)

Langkah 2

Kemudian Anda menjalankan perintah ini setelah mengidentifikasi PID. 

taskkill/PID typeyourPIDdi sini / F

P.S. Jalankan perintah pertama lagi untuk memeriksa apakah proses masih tersedia atau tidak. Anda akan mendapatkan baris kosong jika proses berhasil berakhir.

578
KavinduWije

Langkah 1 (yang sama ada di diterima answer ditulis oleh KavinduWije ):

netstat -ano | findstr :yourPortNumber

Ubah Langkah 2 ke:

tskill typeyourPIDhere 

Ini karena taskkill tidak berfungsi di beberapa perintah git bash

76
afsarkhan10182

Jika Anda menggunakan GitBash

Langkah pertama:

netstat -ano | findstr :8080

Langkah dua: 

taskkill /PID typeyourPIDhere /F 

(/F dengan paksa menghentikan proses)

62
Ara Yaghsizian

Di Windows PowerShell versi 1 atau lebih baru untuk menghentikan proses pada port 3000 ketik:

Stop-Process (, (netstat -ano | findstr: 3000) .split () | foreach {$ [$ .length-1]}) -Paksa


Seperti yang disarankan oleh @morganpdx, inilah versi PowerShell-ish yang lebih baik:

Stop-Proses -Id (Dapatkan-NetTCPConnection -LocalPort 3000) .Memiliki Proses -Paksa

18
todorm

dengan alat standar Windows10:

1.) Temukan PID (ProcessID) untuk port 8080:

netstat -aon | findstr 8080

TCP 0.0.0.0:8080 0.0.0.0♥ LISTEN 11999

2.) Bunuh proses zombie:

taskkill /F /PID 11999

di mana "11999" adalah PID Anda

12
DuracellDeMonaco

Untuk digunakan dalam baris perintah:

for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a

Untuk digunakan dalam file bat:

for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
10
Mahesh Narwade

Jika Anda sudah tahu nomor port, mungkin cukup mengirim sinyal terminasi perangkat lunak ke proses (SIGTERM):

kill $(lsof -t -i :PORT_NUMBER)
3
Telefonplan

Untuk pengguna windows, Anda dapat menggunakan alat CurrPorts untuk mematikan port yang sedang digunakan dengan mudah enter image description here

3
Zuhair Taha

Jika Anda ingin melakukannya menggunakan python: check Apakah mungkin dalam proses python kill yang berjalan pada port tertentu, misalnya 8080? Jawaban dari Smunk berfungsi dengan baik. Saya ulangi kodenya di sini:

from psutil import process_iter
from signal import SIGTERM # or SIGKILL

for proc in process_iter():
    for conns in proc.connections(kind='inet'):
        if conns.laddr.port == 8080:
            proc.send_signal(SIGTERM) # or SIGKILL
            continue 
2
Kardi Teknomo

Saya menjalankan zookeeper @windows, tidak dapat menghentikan zookeeper yang berjalan di port 2181 menggunakan zookeeper-stop.sh, jadi coba metode "//" double slash ini ke taskkill. Itu berhasil 

     1. netstat -ano | findstr :2181
       TCP    0.0.0.0:2181           0.0.0.0:0              LISTENING       8876
       TCP    [::]:2181              [::]:0                 LISTENING       8876

     2.taskkill //PID 8876 //F
       SUCCESS: The process with PID 8876 has been terminated.
1
sandprogrammer

Anda dapat melakukannya dengan menjalankan file bat:

@ECHO OFF                                                                              
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "9797" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine                                                   
:SkipLine                                                                              
echo ProcessId to kill = %ProcessId%
taskkill /f /pid %ProcessId%
PAUSE
1
flopcoder

Kita dapat menghindari ini dengan hanya me-restart IIS, menggunakan perintah di bawah.

IISRESET

0
ksrider 148