Contoh use case:
Saya menjalankan Chromium dengan beberapa tab terbuka dan memutuskan bahwa saya tidak perlu mengakses aplikasi selama 20 menit berikutnya. Untuk menghemat waktu baterai laptop, saya ingin menghibernasi (membekukan) Chromium tanpa harus menutup aplikasi (membuka kembali dan memuat ulang semua tab memerlukan waktu yang ingin saya simpan dengan hibernasi).
killall
solusinya benar-benar sangat elegan. :)Jawaban:
Anda dapat menggunakan
killall
perintah untuk mengirimSIGSTOP
sinyal ke semua proses yang cocok dengan nama yang diberikan untuk membekukannya dan kemudian mengirimSIGCONT
cara yang sama untuk mencairkannya lagi.Pertama cari tahu nama proses menggunakan
pgrep -l SEARCH_PATTERN
:Perhatikan bahwa itu akan memangkas nama-nama panjang, oleh karena
r
itu hilang. Tapi ini bukan masalah karena Anda bisa menggunakan Tabpenyelesaian untuk memasukkan nama proses yang akan menyelesaikannya secara otomatis.Kemudian Anda mengirim
SIGSTOP
sinyal ke semua proses yang dinamaichromium-browser
seperti ini:Jendela Chromium akan berwarna abu-abu seolah menjadi tidak responsif. Yah, itu benar-benar menjadi tidak responsif, jadi itu sudah diduga. Anda tidak dapat berinteraksi dengan jendela dengan cara apa pun sekarang (kecuali untuk bilah menu dan meminimalkan dll. Yang ditangani oleh manajer jendela dan bukan aplikasi itu sendiri). Tetapi acara dari mengklik tombol dll. Masih dihasilkan dan ditambahkan ke antrian acara aplikasi, sehingga semuanya akan diproses sekaligus ketika Anda mencairkan aplikasi lagi!
Anda mencairkan aplikasi lagi dengan hanya menjalankan perintah ini yang mengirimkan
SIGCONT
sinyal ke proses yang ditentukan:Terkadang membekukan aplikasi dengan cara ini dapat menyebabkannya macet, jadi pastikan barang-barang penting disimpan sebelum membekukan aplikasi.
Dalam kasus yang jarang terjadi bahkan lingkungan desktop / palungan jendela / apa pun yang mungkin menjadi tidak responsif juga. Dalam hal ini Anda harus mencairkan aplikasi yang dibekukan melalui TTY:
Tekan Ctrl+ Alt+ F1untuk beralih ke TTY1. Anda akan diminta untuk masuk, jadi masukkan nama pengguna dan kata sandi Anda. Kemudian jalankan perintah untuk mencairkan aplikasi dengan cara yang sama Anda akan menjalankannya melalui emulator terminal normal Anda. Setelah itu beralih kembali ke desktop (TTY7) menggunakan Ctrl+ Alt+ F7dan Anda akan baik-baik saja.
sumber
pgrep
, Anda bisa melanjutkan denganpkill
SIGSTOP
ada, saya akan mengatakan itu kecil. Saya sering menggunakannya di Chromium, dan saya tidak ingat pernah menjadi alasan kecelakaan.killall
! ;-)Untuk menangguhkan, coba:
killall -SIGTSTP chromium-browser
Jika ini tidak berhasil, cobalah versi kuat:
killall -SIGSTOP chromium-browser
.Either way, untuk terus digunakan
killall -SIGCONT chromium-browser
. Saya mencoba dengan Firefox dan berhasil. Namun perlu diperhatikan, bahwa jika Anda mengeklik tombol di Chromium saat ditangguhkan, ia akan menjalankan hal itu setelah Anda melanjutkan eksekusi.sumber
chromium-browser
nama proses. +1google-chrome
jika Anda menggunakan Google Chrome, karena perbedaannya tampaknya membingungkanAnda dapat mencoba yang berikut (di Terminal):
Maka Anda akan melihat sesuatu seperti ini:
Tuliskan nomor 7166 (atau nomor apa pun itu) dan kemudian lakukan:
Itu akan menunda eksekusi proses. Ini tidak akan segera membebaskan memori yang digunakan olehnya, tetapi memori akan tersedia untuk proses lain jika mereka membutuhkannya.
Lalu lakukan
kill -CONT 7166
untuk bekerja dengan program ini lagi.Perhatikan bahwa Anda harus mengubah 7166 jika perlu.
sumber