Saya memiliki masalah tentang cara mematikan proses di Cygwin di Windows. Saya benar-benar baru di Cygwin. Tapi aku punya tugas yang tidak bisa kubunuh. Saya telah mencoba mengeluarkan perintah berikut:
kill 4568
kill -9 4568
/bin/kill -f 4568
Saya telah mengeluarkan perintah di terminal Cygwin terpisah karena saya tidak dapat Ctrl + C di terminal Cygwin tempat proses berjalan. Saya telah mencari di internet tanpa hasil.
Jawaban:
Atau
Atau
sumber
ps -W | awk 'BEGIN{ IGNORECASE=1;} /calc.exe/,NF=1' | xargs kill -f
karena Windows case-insensitiveAnda dapat mencoba:
sumber
taskkill /im:{name-of-executable}
Bermanfaat juga.taskkill /im <name-of-exe> /f
bahkan lebih bermanfaat.taskkill //im <name-of-exe>
(perhatikan perlunya 2 tebasan)Jika Anda menginginkan solusi BASH only, coba ini: (ini berfungsi untuk saya)
CATATAN: gunakan / bin / kill, shell kill yang tertanam tidak akan membunuh PID untuk proses windows umum.
sumber
(Dari jawaban saya ke pertanyaan serupa pada SO ):
Program Windows yang berbeda akan menangani sinyal yang membunuh pengiriman secara berbeda; mereka tidak pernah dirancang untuk menghadapinya dengan cara yang sama seperti program Linux / Cygwin.
Satu-satunya metode yang dapat diandalkan untuk membunuh program Windows adalah dengan menggunakan alat khusus Windows, seperti Task Manager atau Process Explorer.
Yang mengatakan, jika Anda belum melakukannya, Anda mungkin beruntung dengan menjalankan terminal Cygwin Anda dalam mode administrator (klik kanan pada shortcut Anda dan pilih "Run as administrator").
sumber
Dua hal untuk dipikirkan di sini:
Untuk mendapatkan WINPID yang benar untuk dibunuh, gunakan
cat /proc/<PID>/winpid
. Yaitu menjalankan ini:dan segera setelah melakukan yang lain
ps
.Alat yang tepat untuk digunakan adalah sysinternals
PsKill64.exe -t <winpid>
yang juga membunuh semua turunan dari proses skrip, yangkill
tidak.sumber
cat /proc/${ZID}/winpid
, sangat baik untuk tahu. Dan lebih cepat daripada solusi denganps -aW | grep ...
, setidaknya pada cygwin saya di bawah Win 7 x64. Tetapi untuk PsKill64 saya pikir Anda perlu-t
membunuh sub proses, dantaskkill
juga dapat membunuh subproses.-t
membunuh keturunan. Jawaban yang benar.Jika Anda memiliki program Windows yang merupakan sub proses bawah proses bash cygwin Anda dapat menggunakan
taskkill /F /PID [the cygwin process id] /T
untuk membunuh pohon proses, tidak perlu untuk mendapatkan Window PID darips
denganawk
dllini diuji di bawah Win7 x64.
Tentu saja Anda dapat menggunakan Window PID juga.
sumber
Di Git Bash saya menggunakan:
Saya belum mencobanya di Cygwin, tetapi saya kira itu akan berhasil di sana juga.
sumber