GNU/Linux >> Belajar Linux >  >> Linux

Sistem Linux Beku? Ini 3 Cara Mengatasinya

Linux dikenal sangat stabil, tetapi bahkan sistem yang paling stabil pun dapat menghadapi situasi yang menyebabkannya menjadi tidak responsif. Kemudian muncul perasaan tidak enak saat Anda menekan dan menahan "Power". Ada beberapa trik dengan Linux yang dapat dicoba dalam kasus seperti itu. Pada titik ini, kami tidak ingin menyimpan pekerjaan yang belum disimpan. Kami ingin menemukan cara untuk menghindari reboot atau setidaknya menyediakan reboot terbersih untuk menghindari korupsi.

Untuk tujuan artikel ini, Linux dapat dilihat sebagai kumpulan dari 2 tumpukan:Kernel Stack dan The User Stack. Di suatu tempat di dalam User Stack, Anda memiliki program yang sedang berjalan. Kemungkinan besar X server, window manager dan beberapa program. Anda dapat membayangkan daftar program itu, termasuk server X, sebagai tumpukan lain di dalam Tumpukan Pengguna. Konsep ini akan membantu pengguna Linux yang lebih baru memahami beberapa tugas yang akan kita lakukan nanti.

1. Matikan program yang tidak responsif dengan xkill

Jika Anda menggunakan desktop Linux, langkah pertama Anda adalah mencoba menggunakan fitur perintah eksekusi (alt+f2 di Ubuntu) window manager Anda. Jika Anda beruntung, itu akan muncul lebih cepat.

Kemudian Anda dapat menjalankan xkill dan arahkan kursor ke jendela yang mati dan klik menjauh.

Xkill bekerja lebih cepat daripada ikon X tradisional atau mengklik kanan jendela pada bilah tugas dan mengklik tutup. Xkill membunuh secara instan tanpa pertanyaan.

2. Menghidupkan kembali sistem Linux yang beku dengan konsol virtual (TTY)

Terkadang, Anda tidak akan seberuntung itu, sistem mungkin tampak benar-benar mati.

Ini mungkin hanya ilusi. Ingat tumpukan program di dalam tumpukan pengguna? Mari kita bekerja dengan gambar ini sebentar.

Meskipun kelihatannya akar dari Tumpukan Pengguna adalah X. Bukan.

Sistem X Window berjalan di Konsol Virtual (VC ), juga disebut sebagai TTY. Mereka diwakili pada sistem file sebagai /dev/ttyX. Linux memiliki banyak VC yang tersedia untuk Anda. Mencoba mengakses yang lain dapat memberi Anda kendali kembali.

Anda dapat meminta VC lain dengan menekan CTRL+ALT+F{1,6} dari lingkungan GUI atau ALT+F{1,6} dari VC lain. Penekanan tombol di atas memberi Anda akses ke VC 1 hingga 6. Antarmuka grafis berjalan di VC 7+.

Saat berhadapan dengan sistem yang tidak stabil, bahkan meminta perubahan VC bisa memakan sedikit waktu, jadi bersabarlah sedikit.

Jika upaya Anda untuk mengubah konsol virtual berhasil, Anda akan diminta untuk memasukkan pengguna dan kata sandi Anda. Anda kemudian akan memiliki konsol mode teks. Sistem Anda harus mendapatkan kembali stabilitas di sini, ini sebagian karena konsol virtual tempat X dan yang lainnya berjalan bukan prioritas lagi.

Setelah Anda masuk, Anda memiliki beberapa opsi.

  • Anda dapat mencoba mematikan program yang tidak berfungsi dengan kill atau bunuh semua perintah.
  • Anda dapat mematikan pengelola jendela, server X, atau pengelola masuk. Ini akan mematikan semua proses anak dan, jika semuanya berjalan dengan baik, manajer login Anda akan memulai ulang menampilkan layar login grafis Anda.

3. Ketika semuanya gagal, bicarakan dengan Kernel menggunakan SysReq

Terkadang, bahkan beralih ke TTY tidak berfungsi. Seluruh sistem mati. Jangan menyerah, sekali lagi, kemungkinan besar hanya ilusi. Linux memiliki satu fitur lagi untuk situasi seperti ini.

Jika dikompilasi di Kernel dan diaktifkan dalam file, Linux memberi Anda sarana untuk mengirim permintaan preset langsung ke kernel. Ini berguna dalam situasi ketika seluruh tumpukan pengguna mati. Ini dikenal sebagai kunci SysRq Ajaib . Dikompilasi dan diaktifkan secara default di sebagian besar distribusi, hanya Kernel Panic yang dapat mencegah hal ini bekerja.

Untuk mengonfirmasi bahwa opsi telah disetel saat kernel dikompilasi, Anda dapat mencoba mencari file konfigurasi kernel Anda saat ini di /boot. Cari opsi CONFIG_MAGIC_SYSRQ. Seperti yang disebutkan sebelumnya, ini dikompilasi dan diaktifkan di sebagian besar distribusi. Untuk mengonfirmasi bahwa itu diaktifkan, jalankan yang berikut:

sysctl kernel.sysrq

Pada sistem yang lebih lama, Anda memiliki 2 opsi:0 &1. Itu OFF atau ON. Pada yang lebih baru, ada kontrol yang lebih baik atas perintah mana yang diaktifkan.

Nilai apa pun di atas 1 berarti beberapa perintah diaktifkan. Detail lebih lanjut dapat ditemukan di sini.

Untuk menetapkan nilai yang berbeda untuk sementara, jalankan perintah berikut:

sudo sysctl -w kernel.sysrq=value

Untuk mengubah nilai ini secara permanen, edit /etc/sysctl.conf . Cari kernel.sysrq, dan atur nilai yang diinginkan.

Cara termudah untuk melihat apakah itu berhasil adalah dengan mencoba. Saya juga merekomendasikan pengujian dan pembelajaran satu set penekanan tombol saat sistem stabil. Saat Anda menjalankan panggilan SysRq, kernel akan mencoba merespons. Respons ini hanya dapat dilihat jika Anda berada di konsol virtual 1 hingga 6. Jika fokus tidak dapat dipindahkan dari X, Anda tidak akan melihat respons tersebut. Ini tidak berarti tidak berfungsi.

Ada banyak perintah yang bisa dikirim. Daftar lengkapnya bisa dilihat di sini. Saya sarankan untuk mengingat yang berikut ini:

Kunci Deskripsi
Alt + SysRq + r Mengeluarkan keyboard dari mode mentah, mengambil kendali dari X
Alt + SysRq + e Kirim SigTerm ke semua proses, beri mereka kesempatan untuk berhenti dengan anggun
Alt + SysRq + i Kirim SigKill ke semua proses
Alt + SysRq + k Bunuh semua proses di konsol virtual saat ini
Alt + SysRq + s Sinkronkan semua sistem file yang terpasang, hapus semua data ke disk
Alt + SysRq + u Remount semua filesystem read-only
Alt + SysRq + b Menyalakan ulang sistem secara instan, tidak menyinkronkan atau melepasnya
Alt + SysRq + o Sistem mati

Daftar perintah singkat ini memberi Anda alat baru yang kuat ketika berhadapan dengan sistem yang tidak stabil. Saat mengirim permintaan, jika Anda tidak dapat melihat respons kernel, berikan beberapa detik di antara perintah. Perhatikan lampu HDD saat meminta pengoperasian HDD.

Ada 2 urutan yang patut diingat.

Alt + SysRq + r e k

Urutan ini bagus untuk memulai ulang server X yang tidak responsif. Pertama-tama Anda mengeluarkan keyboard dari mode mentah dengan Alt + SysRq + r . Anda kemudian meminta untuk mengirim SIGTERM ke semua proses dengan Alt + SysRq + e . Server X dapat memulai ulang dengan permintaan ini. Jika demikian, Anda telah menyelamatkan sistem Anda. Jika tidak, lanjutkan dengan permintaan ketiga, Alt + SysRq + k . Yang akan mengirim SIGKILL ke semua proses dalam konsol virtual saat ini.

Jika sistem Anda masih tidak responsif setelah urutan di atas, Anda harus melanjutkan ke urutan berikutnya.

Alt + SysRq + r e i s u b

Perintah terakhir ini akan memulai reboot darurat.

  • r :Keluarkan keyboard dari mode mentah
  • e :Kirim SIGTERM ke semua proses
  • i :Kirim SIGKILL ke semua proses
  • s :Menyinkronkan semua sistem file yang terpasang
  • u :Remount darurat hanya baca
  • b :Segera reboot sistem

Anda sekarang dilengkapi dengan alat terbaik untuk melawan sistem yang tidak responsif yang saya tahu. Anda dapat mengikuti video ini dari saluran YouTube saya untuk demonstrasi.

Saya harap Anda mempelajari sesuatu yang baru tentang menangani sistem Linux yang beku dengan artikel ini. Saya ingin tahu tanggapan Anda tentang hal itu. Silakan gunakan bagian komentar dan bagikan pemikiran Anda.


Linux
  1. Pantau sistem Linux Anda di terminal Anda dengan procps-ng

  2. Analisis kernel Linux dengan ftrace

  3. Memahami panggilan sistem di Linux dengan strace

  1. Tingkatkan kinerja sistem Linux dengan noatime

  2. Perintah Shutdown Linux (dengan Contoh)

  3. Linux – Apakah Kernel Linux/unix yang Berbeda Dapat Dipertukarkan?

  1. Menjadwalkan tugas sistem dengan Cron di Linux

  2. Cara memeriksa versi Kernel di Linux

  3. Panggilan sistem Linux tercepat