Membunuh semua instance Chrome di baris perintah?


37

Dalam beberapa kasus membunuh satu tab / proses tidak berfungsi dan saya harus menutup Chrome sepenuhnya. Karena Chrome memiliki banyak proses, bagaimana saya bisa menutup semuanya sekaligus?

Saya tahu itu...

pgrep chromemengembalikan semua pids. Apa trik yang memungkinkan saya untuk menutup semuanya dengan memberi mereka makan ke perintah lain atau menggabungkan mereka ke file CSV atau sesuatu?


3
Karena setidaknya ada tiga jawaban di sini yang tidak perlu dilakukan kill -9, berikut adalah tiga referensi yang membahas alasan yang harus menjadi pilihan terakhir Anda: Kapan saya harus menggunakan kill -9 , kill -9 dan gunanya menggunakan kill -9 .
Dijeda sampai pemberitahuan lebih lanjut.

1
Pertanyaan serupa di situs U / Linux: unix.stackexchange.com/q/34101/6272
AlikElzin-kilaka

Jawaban terbersih benar-benar adalah dari pertanyaan di situs lain, seperti disebutkan di bawah ini, karena ini mencari tahu proses mana yang harus dibunuh oleh timestamp tertua:pkill --oldest chrome
nealmcb

Jawaban:


55

Coba gunakan pkill (1) .

pkill chrome


Perlu diketahui bahwa pkill mungkin tidak ada di semua sistem, tetapi jika Anda memiliki pgrep, kemungkinan besar pkill juga ada.
kSiR

2
bagi saya ini adalah case sensitive, saya perlu menulispkill Chrome
Liron Yahdav

1
Tidak bekerja untuk saya. Menggunakannya pkill chrometidak menutup proses chrome utama. Itu menutup semua proses internal yang menyebabkan crash pada semua ekstensi. Juga, itu menyebabkan beberapa jendela tidak terbuka pada peluncuran berikutnya, menyebabkan hilangnya status :(
AlikElzin-kilaka

2
@ AlikElzin-kilaka - Anda dapat mencoba secara eksplisit membunuh proses Chrome tertua dengan sesuatu sepertipkill --oldest chrome
rinogo

13
ps aux | grep chrome | awk ' { print $2 } ' | xargs kill -9

atau

pgrep chrome | xargs kill -9

atau

ps aux | awk '/chrome/ { print $2 } ' | xargs kill -9

Yang terakhir lebih "elegan" karena tidak akan mengambil pid sebenarnya untuk "grep chrome" di dalam daftar ps-nya

:-)


Apakah ada alasan untuk menggunakan ps ... | bukan pgrep, bahkan seandainya Anda tidak ingin menggunakan pkill?
Cascabel

3
Selalu sopan untuk memulai dengan SIGTERM sebelum naik ke SIGKILL.
Cascabel

tidak juga, satu-satunya alasan saya melemparkan opsi ps di luar sana karena banyak sistem saya adalah tulang kosong yang berarti kita tidak memiliki hal-hal seperti pkill pgrep
kSiR

Saya setuju, tetapi satu hanya diminta untuk membunuh: -O s / -9 / -1 / g
kSiR

6

Beberapa sistem mungkin juga memiliki program yang bermanfaat seperti killalldan pidof(yang sebenarnya disediakan oleh Sistem V killall5):

killall chrome
kill -9 `pidof chrome`

Keduanya harus memenuhi apa yang Anda minta.


1
Anda tidak boleh menggunakan -9kecuali sebagai pilihan terakhir. Lakukan kill PIDdulu.
Dijeda sampai pemberitahuan lebih lanjut.

killalljuga mendukung ketidakpekaan huruf besar-kecil, misalnya: killall --ignore-case ChRomEakan mematikan semua proses Chrome. Opsi --ignore-caseini juga dapat disingkat menjadi -I. Sayangnya, pkilltidak mendukung case-insensitivity - setidaknya pada sistem Linux yang saya coba (tapi itu mendukung -icase-insensitivity pada MacOS).
nonbeing

1

Anda harus benar-benar hanya menggunakan pkillseperti yang disarankan jschmier, tetapi jika Anda bersikeras pada pgrep, cukup gunakan substitusi perintah:

kill $(pgrep chrome)

would'nt kill pgrep chrome`` juga berfungsi;)
kSiR

@kSiR: [terlambat satu bulan] ya, tetapi $(...)merupakan kebiasaan yang bagus untuk masuk sehingga Anda dapat bersarang saat Anda perlu, dan beralih di antara pembatas yang cocok di editor Anda.
Cascabel

1

Perintah termudah adalah ini:

sudo killall chrome

Ini akan, dengan izin administratif, membunuh semua proses yang mengandung chromeatas namanya.

Lihat man killalluntuk informasi lebih lanjut ...


3
Bisakah Anda menambahkan sedikit penjelasan tentang cara kerja jawaban Anda?
nhinkle


0

Anda juga dapat mencoba sesuatu seperti ini:

ps -C chrome |cut -f 1 -d' ' | xargs kill

Anda seharusnya tidak menggunakan -9 kecuali sebagai pilihan terakhir. Lakukan kill PIDdulu.
Dijeda sampai pemberitahuan lebih lanjut.

poin yang bagus. Saya memperbarui jawaban saya.
Nathan Fellman

Tidak perlu melalui pipa lain cut; psdapat melakukannya sendiri: ps -o pid= -C chrome | xargs kill.
musiphil

Dan itu adalah kebiasaan yang baik untuk menempatkan -rdi xargs: ps -o pid= -C chrome | xargs -r kill.
musiphil

@musiphil: apa -r?
Nathan Fellman

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.