本篇內(nèi)容介紹了“l(fā)inux中oops指的是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
十余年的邵武網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整邵武建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“邵武網(wǎng)站設(shè)計”,“邵武網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
在linux中,oops表示“驚訝”,是一種信息提示,意味著系統(tǒng)上運行的某些東西違反了內(nèi)核規(guī)定的規(guī)則;oops會生成一個崩潰簽名“crash signature”,可以幫助內(nèi)核開發(fā)人員找出錯誤并提高代碼質(zhì)量。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
Linux 內(nèi)核正在盯著你,當它檢測到系統(tǒng)上運行的某些東西違反了正常內(nèi)核行為時,它會關(guān)閉系統(tǒng)并發(fā)出一個“oops”!
如果你檢查你的 Linux 系統(tǒng)上運行的進程,你可能會對一個叫做 “kerneloops” 的進程感到好奇。提示一下,它是 “kernel oops”,而不是 “kerne loops”。
坦率地說,“oops” 是 Linux 內(nèi)核的一部分出現(xiàn)了偏差行為。你有做錯了什么嗎?可能沒有。但有一些不對勁。而那個做了錯事的進程可能已經(jīng)被 CPU 結(jié)束。最糟糕的是,內(nèi)核可能會報錯并突然關(guān)閉系統(tǒng)。
請注意,“oops” 不是首字母縮略詞。它不代表像“面向?qū)ο蟮木幊毯拖到y(tǒng)object-oriented programming and systems” 或“超出程序規(guī)范out of procedural specs” 之類的東西。它實際上就是“哎呀” (oops),就像你剛掉下一杯酒或踩在你的貓身上。哎呀! “oops” 的復(fù)數(shù)是 “oopses”。
oops 意味著系統(tǒng)上運行的某些東西違反了內(nèi)核有關(guān)正確行為的規(guī)則。也許代碼嘗試采取不允許的代碼路徑或使用無效指針。不管它是什么,內(nèi)核 —— 總是在監(jiān)測進程的錯誤行為 —— 很可能會阻止特定進程,并將它做了什么的消息寫入控制臺、 /var/log/dmesg
或 /var/log/kern.log
中。
oops 可能是由內(nèi)核本身引起的,也可能是某些進程試圖讓內(nèi)核違反在系統(tǒng)上能做的事以及它們被允許做的事。
oops 將生成一個崩潰簽名crash signature,這可以幫助內(nèi)核開發(fā)人員找出錯誤并提高代碼質(zhì)量。
系統(tǒng)上運行的 kerneloops 進程可能如下所示:
kernoops 881 1 0 Feb11 ? 00:00:01 /usr/sbin/kerneloops
你可能會注意到該進程不是由 root 運行的,而是由名為 “kernoops” 的用戶運行的,并且它的運行時間極少。實際上,分配給這個特定用戶的唯一任務(wù)是運行 kerneloops。
$ sudo grep kernoops /etc/passwd kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
如果你的 Linux 系統(tǒng)不帶有 kerneloops(比如 Debian),你可以考慮添加它。查看這個 Debian 頁面了解更多信息。
什么時候應(yīng)該關(guān)注 oops?
一般 oops 沒什么大不了的。它在一定程度上取決于特定進程所扮演的角色。它也取決于 oops 的類別。
有些 oops 很嚴重,會導(dǎo)致系統(tǒng)恐慌system panic。從技術(shù)上講,系統(tǒng)恐慌是 oops 的一個子集(即更嚴重的 oops)。當內(nèi)核檢測到的問題足夠嚴重以至于內(nèi)核認為它(內(nèi)核)必須立即停止運行以防止數(shù)據(jù)丟失或?qū)ο到y(tǒng)造成其他損害時會出現(xiàn)。因此,系統(tǒng)需要暫停并重新啟動,以防止任何不一致導(dǎo)致不可用或不可靠。所以系統(tǒng)恐慌實際上是為了保護自己免受不可挽回的損害。
總之,所有的內(nèi)核恐慌都是 oops,但并不是所有的 oops 都是內(nèi)核恐慌。
/var/log/kern.log
和相關(guān)的輪轉(zhuǎn)日志(/var/log/kern.log.1
、/var/log/kern.log.2
等)包含由內(nèi)核生成并由 syslog 處理的日志。
kerneloops 程序收集并默認將錯誤信息提交到 http://oops.kernel.org/,在那里它會被分析并呈現(xiàn)給內(nèi)核開發(fā)者。此進程的配置詳細信息在 /etc/kerneloops.conf 文件中指定。你可以使用下面的命令輕松查看設(shè)置:
$ 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
在上面的(默認)設(shè)置中,內(nèi)核問題可以被提交,但要求用戶獲得許可。如果設(shè)置為 allow-submit = always
,則不會詢問用戶。
調(diào)試內(nèi)核問題是使用 Linux 系統(tǒng)的更高級技巧之一。幸運的是,大多數(shù) Linux 用戶很少或從沒有經(jīng)歷過 oops 或內(nèi)核恐慌。不過,知道 kerneloops 這樣的進程在系統(tǒng)中執(zhí)行什么操作,了解可能會報告什么以及系統(tǒng)何時遇到嚴重的內(nèi)核沖突也是很好的。
“l(fā)inux中oops指的是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!