Di Linux, oops bermaksud "kejutan", yang merupakan gesaan maklumat, bermakna sesuatu yang berjalan pada sistem melanggar peraturan yang ditentukan oleh kernel oops akan menjana tanda ranap "tandatangan ranap", yang boleh Membantu pembangun kernel mencari pepijat dan meningkatkan kualiti kod.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Inti Linux sedang memerhatikan anda, dan apabila ia mengesan sesuatu berjalan pada sistem yang melanggar tingkah laku kernel biasa, ia mematikan sistem dan mengeluarkan "ops"!
Jika anda meneliti proses yang berjalan pada sistem Linux anda, anda mungkin ingin tahu tentang proses yang dipanggil "kerneloops". Sekadar peringatan, ia adalah "kernel oops", bukan "kerne loops".
Terus terang, "ops" adalah sebahagian daripada kernel Linux yang mempamerkan tingkah laku menyimpang. Adakah anda melakukan sesuatu yang salah? Mungkin tidak. Tetapi ada yang tidak kena. Dan proses yang melakukan sesuatu yang salah mungkin telah ditamatkan oleh CPU. Paling teruk, kernel mungkin melaporkan ralat dan menutup sistem secara tiba-tiba.
Sila ambil perhatian bahawa "oops" bukan akronim. Ia tidak bermaksud sesuatu seperti "pengaturcaraan dan sistem berorientasikan objek" atau "diluar spesifikasi prosedur". Ini betul-betul "ops," seperti anda baru sahaja menjatuhkan segelas wain atau memijak kucing anda. oops! Bentuk jamak bagi "oops" ialah "oopses".
oops bermaksud sesuatu yang berjalan pada sistem melanggar peraturan kernel tentang tingkah laku yang betul. Mungkin kod itu cuba mengambil laluan kod yang tidak dibenarkan atau menggunakan penunjuk yang tidak sah. Walau apa pun, kernel - yang sentiasa memantau proses untuk salah laku - kemungkinan besar akan menyekat proses tertentu dan menulis mesej tentang perkara yang dilakukannya kepada konsol, /var/log/dmesg
atau /var/log/kern.log
.
oops boleh disebabkan oleh kernel itu sendiri, atau ia boleh menjadi beberapa proses yang cuba membuat kernel melanggar apa yang boleh dan dibenarkan lakukan pada sistem.
oops akan menjana tandatangan ranap, yang boleh membantu pembangun kernel mencari pepijat dan meningkatkan kualiti kod.
Proses kernelloops yang berjalan pada sistem anda mungkin kelihatan seperti ini:
kernoops 881 1 0 Feb11 ? 00:00:01 /usr/sbin/kerneloops
Anda mungkin perasan bahawa proses itu tidak dijalankan oleh akar, tetapi oleh pengguna bernama "kernoops" , dan masa berjalan adalah minimum. Malah, satu-satunya tugas yang diberikan kepada pengguna ini ialah menjalankan kerneloops.
$ sudo grep kernoops /etc/passwd kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
Jika sistem Linux anda tidak disertakan dengan kerneloops (seperti Debian), anda boleh mempertimbangkan untuk menambahkannya. Lihat halaman Debian ini untuk maklumat lanjut.
Bilakah anda perlu memberi perhatian kepada oops?
Umum oops bukan masalah besar. Ia bergantung sebahagiannya pada peranan yang dimainkan oleh proses tertentu. Ia juga bergantung pada kategori oops.
Sesetengah oops adalah serius dan boleh menyebabkan sistem panik. Secara teknikal, panik sistem ialah subset oops (iaitu, oops yang lebih teruk). Berlaku apabila masalah yang dikesan oleh kernel cukup teruk sehingga kernel percaya bahawa ia (kernel) mesti berhenti berjalan serta-merta untuk mengelakkan kehilangan data atau kerosakan lain pada sistem. Oleh itu, sistem perlu dijeda dan dimulakan semula untuk mengelakkan sebarang ketidakkonsistenan daripada menyebabkan ketiadaan atau ketidakbolehpercayaan. Jadi sistem panik sebenarnya untuk melindungi dirinya daripada kerosakan yang tidak boleh diperbaiki.
Ringkasnya, semua panik kernel adalah oops, tetapi bukan semua oops adalah panik kernel.
/var/log/kern.log
dan log berputar yang berkaitan (/var/log/kern.log.1
, /var/log/kern.log.2
, dsb.) mengandungi log yang dijana oleh kernel dan diproses oleh syslog.
Atur cara kernelloops mengumpul dan secara lalai menyerahkan mesej ralat ke http://oops.kernel.org/, di mana ia dianalisis dan dibentangkan kepada pembangun kernel. Butiran konfigurasi untuk proses ini dinyatakan dalam fail /etc/kerneloops.conf. Anda boleh melihat tetapan dengan mudah menggunakan arahan berikut:
$ sudo cat /etc/kerneloops.conf | grep -v ^# | grep -v ^$ [sudo] password for shs:allow-submit = ask allow-pass-on = yes submit-url = http://oops.kernel.org/submitoops.phplog-file = /var/log/kern.logsubmit-pipe = /usr/share/apport/kernel_oops
Dalam tetapan (lalai) di atas, isu kernel boleh diserahkan, tetapi pengguna dikehendaki mendapatkan kebenaran. Jika ditetapkan kepada allow-submit = always
, pengguna tidak akan diminta.
Menyahpepijat isu kernel ialah salah satu teknik yang lebih maju untuk bekerja dengan sistem Linux. Nasib baik, kebanyakan pengguna Linux jarang atau tidak pernah mengalami oops atau panik kernel. Walau bagaimanapun, adalah baik untuk mengetahui proses seperti kerneloops lakukan pada sistem anda, dan untuk mengetahui perkara yang mungkin dilaporkan dan apabila sistem anda menghadapi konflik kernel yang teruk.
Cadangan berkaitan: "Tutorial Video Linux"
Atas ialah kandungan terperinci apa itu linux oops. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!