您好,登錄后才能下訂單哦!
本篇內容介紹了“linux中oops指的是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在linux中,oops表示“驚訝”,是一種信息提示,意味著系統上運行的某些東西違反了內核規定的規則;oops會生成一個崩潰簽名“crash signature”,可以幫助內核開發人員找出錯誤并提高代碼質量。
本教程操作環境:linux5.9.8系統、Dell G3電腦。
Linux 內核正在盯著你,當它檢測到系統上運行的某些東西違反了正常內核行為時,它會關閉系統并發出一個“oops”!
如果你檢查你的 Linux 系統上運行的進程,你可能會對一個叫做 “kerneloops” 的進程感到好奇。提示一下,它是 “kernel oops”,而不是 “kerne loops”。
坦率地說,“oops” 是 Linux 內核的一部分出現了偏差行為。你有做錯了什么嗎?可能沒有。但有一些不對勁。而那個做了錯事的進程可能已經被 CPU 結束。最糟糕的是,內核可能會報錯并突然關閉系統。
請注意,“oops” 不是首字母縮略詞。它不代表像“面向對象的編程和系統object-oriented programming and systems” 或“超出程序規范out of procedural specs” 之類的東西。它實際上就是“哎呀” (oops),就像你剛掉下一杯酒或踩在你的貓身上。哎呀! “oops” 的復數是 “oopses”。
oops 意味著系統上運行的某些東西違反了內核有關正確行為的規則。也許代碼嘗試采取不允許的代碼路徑或使用無效指針。不管它是什么,內核 —— 總是在監測進程的錯誤行為 —— 很可能會阻止特定進程,并將它做了什么的消息寫入控制臺、 /var/log/dmesg
或 /var/log/kern.log
中。
oops 可能是由內核本身引起的,也可能是某些進程試圖讓內核違反在系統上能做的事以及它們被允許做的事。
oops 將生成一個崩潰簽名crash signature,這可以幫助內核開發人員找出錯誤并提高代碼質量。
系統上運行的 kerneloops 進程可能如下所示:
kernoops 881 1 0 Feb11 ? 00:00:01 /usr/sbin/kerneloops
你可能會注意到該進程不是由 root 運行的,而是由名為 “kernoops” 的用戶運行的,并且它的運行時間極少。實際上,分配給這個特定用戶的唯一任務是運行 kerneloops。
$ sudo grep kernoops /etc/passwd kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
如果你的 Linux 系統不帶有 kerneloops(比如 Debian),你可以考慮添加它。查看這個 Debian 頁面了解更多信息。
什么時候應該關注 oops?
一般 oops 沒什么大不了的。它在一定程度上取決于特定進程所扮演的角色。它也取決于 oops 的類別。
有些 oops 很嚴重,會導致系統恐慌system panic。從技術上講,系統恐慌是 oops 的一個子集(即更嚴重的 oops)。當內核檢測到的問題足夠嚴重以至于內核認為它(內核)必須立即停止運行以防止數據丟失或對系統造成其他損害時會出現。因此,系統需要暫停并重新啟動,以防止任何不一致導致不可用或不可靠。所以系統恐慌實際上是為了保護自己免受不可挽回的損害。
總之,所有的內核恐慌都是 oops,但并不是所有的 oops 都是內核恐慌。
/var/log/kern.log
和相關的輪轉日志(/var/log/kern.log.1
、/var/log/kern.log.2
等)包含由內核生成并由 syslog 處理的日志。
kerneloops 程序收集并默認將錯誤信息提交到 http://oops.kernel.org/,在那里它會被分析并呈現給內核開發者。此進程的配置詳細信息在 /etc/kerneloops.conf 文件中指定。你可以使用下面的命令輕松查看設置:
$ 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
在上面的(默認)設置中,內核問題可以被提交,但要求用戶獲得許可。如果設置為 allow-submit = always
,則不會詢問用戶。
調試內核問題是使用 Linux 系統的更高級技巧之一。幸運的是,大多數 Linux 用戶很少或從沒有經歷過 oops 或內核恐慌。不過,知道 kerneloops 這樣的進程在系統中執行什么操作,了解可能會報告什么以及系統何時遇到嚴重的內核沖突也是很好的。
“linux中oops指的是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。