Bagaimana saya bisa membunuh proses berdasarkan argumen baris perintahnya?
killall
,, pgrep
dan pkill
tampaknya hanya berfungsi berdasarkan nama proses.
Saya perlu ini untuk dapat membedakan antara sejumlah aplikasi yang berjalan di dalam mesin virtual Java, di mana java
nama proses untuk semua dari mereka dan nama aplikasi yang sebenarnya dapat ditemukan dengan melihat argumen command line.
Ini dapat dilakukan secara manual dengan ps aux | grep myapp.jar
dan kemudian secara manual membunuh pid dari output, tetapi saya ingin perintah untuk melakukan sesuatu yang setara secara otomatis.
bash: syntax error near unexpected token ';'
... Itu berfungsi dalam pernyataan kasus ketika ampersand diikuti oleh;;
... mungkin Anda menggunakan shell yang berbeda (?)zsh
, yang mendukung sintaks yang saya gunakan. Membiarkannya berhasil di keduanya, jadi saya menghapusnyazsh
pengguna yang lebih tinggi daripada di tempat lain - Saya sepertinya hanya menemukanzsh
pengguna di sini.Anda dapat menggunakan
htop
untuk melihat semua proses yang sedang berjalan dengan argumen baris perintah mereka dan untuk membunuh proses yang dipilih.sumber
Ganti di
argument
bawah ini dengan ekspresi reguler yang harus banyak baris perintah penuh dari suatu proses:sumber
Jika Anda tidak memiliki pkill atau apa pun, cukup gunakan proc / [1-9] * / cmdline
sumber