Mengapa netstat tidak keluar kecuali Anda memberinya bendera n?
Pantai Jared
2
@JaredBeach - menunggu resolusi nama DNS terbalik, sehingga pada akhirnya akan selesai setelah batas waktu selesai. Jika ini tergantung pada IP internal , maka ini menunjukkan masalah dengan server DNS lokal Anda.
Steve Friedl
7
Jika Anda ingin melakukan ini secara terprogram, Anda dapat menggunakan beberapa opsi yang diberikan kepada Anda sebagai berikut dalam skrip PowerShell:
Namun; Sadarilah bahwa semakin akurat Anda, semakin akurat hasil PID Anda. Jika Anda tahu di host mana port seharusnya berada, Anda dapat mempersempitnya banyak. netstat -aon | findstr "0.0.0.0:9999"hanya akan mengembalikan satu aplikasi dan kemungkinan besar yang benar. Hanya mencari di nomor port dapat menyebabkan Anda mengembalikan proses yang kebetulan ada 9999di dalamnya, seperti ini:
Kandidat yang paling mungkin biasanya berakhir pertama, tetapi jika proses telah berakhir sebelum Anda menjalankan skrip Anda, Anda mungkin berakhir dengan PID 12331 dan mematikan proses yang salah.
Setelah beberapa mengutak-atik skrip, saya sampai pada tindakan ini. Salin dan simpan dalam file .bat:
FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i
Ubah 'find "3306"' di nomor port yang harus bebas. Kemudian jalankan file tersebut sebagai administrator. Ini akan mematikan semua proses yang berjalan di port ini.
Jawaban:
Cukup buka shell perintah dan ketik (katakanlah port Anda adalah 123456):
Anda akan melihat semua yang Anda butuhkan.
Headernya adalah:
sumber
nestat -aon | findstr 123456
Temukan PID dari proses yang menggunakan port di Windows (mis. Port: "9999")
-a
Menampilkan semua koneksi dan port mendengarkan.-o
Menampilkan ID proses kepemilikan yang terkait dengan setiap koneksi.-n
Menampilkan alamat dan nomor port dalam bentuk numerik.Keluaran:
Kemudian matikan proses dengan PID
/F
- Menentukan untuk secara paksa menghentikan proses.Catatan: Anda mungkin memerlukan izin tambahan (dijalankan dari administrator) untuk menghentikan beberapa proses tertentu
sumber
Jika Anda ingin melakukan ini secara terprogram, Anda dapat menggunakan beberapa opsi yang diberikan kepada Anda sebagai berikut dalam skrip PowerShell:
Namun; Sadarilah bahwa semakin akurat Anda, semakin akurat hasil PID Anda. Jika Anda tahu di host mana port seharusnya berada, Anda dapat mempersempitnya banyak.
netstat -aon | findstr "0.0.0.0:9999"
hanya akan mengembalikan satu aplikasi dan kemungkinan besar yang benar. Hanya mencari di nomor port dapat menyebabkan Anda mengembalikan proses yang kebetulan ada9999
di dalamnya, seperti ini:Kandidat yang paling mungkin biasanya berakhir pertama, tetapi jika proses telah berakhir sebelum Anda menjalankan skrip Anda, Anda mungkin berakhir dengan PID 12331 dan mematikan proses yang salah.
sumber
Setelah beberapa mengutak-atik skrip, saya sampai pada tindakan ini. Salin dan simpan dalam file .bat:
Ubah 'find "3306"' di nomor port yang harus bebas. Kemudian jalankan file tersebut sebagai administrator. Ini akan mematikan semua proses yang berjalan di port ini.
sumber
Perintah:
Keluaran:
Sekarang potong ID proses, "10396", menggunakan
for
perintah di Windows.Perintah:
Keluaran:
10396
Jika Anda ingin memotong angka ke-4 dari nilai berarti "MENDENGARKAN" maka perintah di Windows.
Perintah:
Keluaran:
MENDENGARKAN
sumber
Ini membantu menemukan PID menggunakan nomor port.
sumber
'lsof' is not recognized as an internal or external command.
PowerShell (kompatibel dengan Core) satu baris untuk memudahkan skenario copypaste:
Keluaran:
Kode yang sama, ramah pengembang:
sumber