Di Windows apa yang bisa mencari port 8080 dan mencoba mematikan proses yang digunakannya melalui file .BAT?
windows
batch-file
process
kill-process
Mike Flynn
sumber
sumber
Jawaban:
Inilah perintah untuk memulai:
Saat Anda yakin dengan file batch Anda, hapus
@ECHO
.Perhatikan bahwa Anda mungkin perlu mengubahnya sedikit untuk OS yang berbeda. Sebagai contoh, pada Windows 7 Anda mungkin perlu
tokens=5
bukantokens=4
.Bagaimana ini bekerja?
Ini memungkinkan Anda mengeksekusi
command
, dan mengulang outputnya. Setiap baris akan dimasukkan ke dalam%variable
, dan dapat diperluasotherCommand
sebanyak yang Anda suka, di mana pun Anda suka.%variable
dalam penggunaan aktual hanya dapat memiliki nama satu huruf, mis%V
.Ini memungkinkan Anda membagi setiap baris dengan spasi putih, dan mengambil potongan ke-4 di baris itu, dan memasukkannya ke dalam
%variable
(dalam kasus kami,%%P
).delims
terlihat kosong, tetapi ruang ekstra itu sebenarnya signifikan.Jalankan saja dan cari tahu. Menurut bantuan baris perintah, ini "Menampilkan semua koneksi dan mendengarkan port.", "Menampilkan alamat dan nomor port dalam bentuk numerik.", Dan "Menampilkan ID proses kepemilikan yang terkait dengan setiap koneksi.". Saya hanya menggunakan opsi ini karena orang lain menyarankannya, dan ternyata berhasil :)
Ini mengambil output dari perintah atau program pertama (
netstat
) dan meneruskannya ke program perintah kedua (findstr
). Jika Anda menggunakan ini secara langsung pada baris perintah, bukannya di dalam string perintah, Anda akan menggunakan|
bukan^|
.Ini menyaring semua output yang dilewatkan ke dalamnya, hanya mengembalikan garis yang berisi
:8080
.Ini membunuh tugas yang sedang berjalan, menggunakan ID proses.
Ini diperlukan dalam file batch. Jika Anda melakukan ini pada command prompt, Anda akan menggunakannya
%P
sebagai gantinya.sumber
HELP FOR
pada baris perintah untuk melihat banyak pilihan lain yangFOR
akan memberi Anda, dan periksanetstat -?
,findstr /?
danTaskKill /?
bantuan bahkan lebih.tokens=4
adalah Windows XP yang saya pikir dantokens=5
Windows 7. Juga ide yang bagus untuk/F
memaksa pembunuhan.Buka command prompt dan jalankan perintah berikut
, di sini 3116 adalah ID proses
sumber
Untuk menemukan proses spesifik pada baris perintah, gunakan perintah di bawah ini di sini 8080 adalah port yang digunakan oleh proses
untuk mematikan proses, gunakan perintah di bawah ini di sini 21424 adalah proses id
sumber
Menggunakan solusi Merlyn menyebabkan aplikasi lain terbunuh seperti firefox. Proses-proses ini menggunakan port yang sama, tetapi tidak sebagai pendengar:
misalnya:
Oleh karena itu, dapat mengecualikan ini dengan menambahkan "MENDENGARKAN" ke findstr sebagai berikut:
sumber
Untuk membuat daftar semua proses yang berjalan pada port 8080 lakukan hal berikut.
Kemudian untuk membunuh proses jalankan perintah berikut
sumber
Terima kasih semua, hanya untuk menambahkan bahwa beberapa proses tidak akan ditutup kecuali jika / F force switch juga dikirim dengan TaskKill. Juga dengan / T switch, semua utas sekunder dari proses akan ditutup.
Untuk layanan, Anda perlu mendapatkan nama layanan dan menjalankan:
sumber
Hanya untuk penyelesaian:
Saya ingin membunuh semua proses yang terhubung ke port tertentu tetapi tidak mendengarkan proses
perintah (dalam cmd shell) untuk port 9001 adalah:
findstr :
netstat :
Ini bekerja karena netstat mencetak port sumber kemudian port tujuan dan kemudian DIDIRIKAN
sumber
Membuat file kelelawar dengan konten di bawah ini, ia menerima input untuk nomor port
Terakhir klik "Enter" untuk keluar.
sumber
Jika Anda ingin mematikan proses yang mendengarkan pada port 8080, Anda bisa menggunakan PowerShell. Cukup gabungkan
Get-NetTCPConnection
cmdlet denganStop-Process
.Diuji dan harus bekerja dengan PowerShell 5 pada Windows 10 atau Windows Server 2016. Namun, saya rasa itu juga harus bekerja pada versi Windows yang lebih lama yang memiliki PowerShell 5 diinstal.
Berikut ini sebuah contoh:
sumber
Mirip dengan respons Merlyn, tetapi yang ini menangani kasus-kasus ini juga:
Ini dia:
sumber
Langkah:
Buka
conf
folder server tomcat apache Anda . Dalam kasus saya,apache-tomcat-7.0.61\conf
saya menggunakan apache-tomcat-7.0.61Buka
server.xml
dan ubah nomor port dari 8080 ke port lain sesuai keinginan. Sebagai contoh: 8081.8082.8087 dllSekarang buka
bin
folder dan jalankanshutdown.bat
Sekarang restart server melalui gerhana.
Sekarang proyek Anda akan bekerja tanpa gangguan.
sumber
Jika ada yang mencari Skrip Powershell:
Fungsi ini pada dasarnya melakukan apa yang dilakukan fungsi-fungsi di atas, tetapi dalam format skrip Powershell sehingga Anda dapat menambahkannya ke profil Powershell Anda. Untuk menemukan lokasi profil Anda, buka PowerShell dan ketik
echo $profile
sumber
netstat
alat.Rekatkan ini ke baris perintah
Jika Anda ingin menggunakannya dalam batch pu,
%%P
bukan%P
sumber
netstat
alat ini diterjemahkan ke bahasa lainjika Anda dengan sistem Anda tidak dapat mengakhiri tugas itu. coba perintah ini
x:> net stop http / y
sumber