Re: [問題] 請問一下可以由dmesg的資訊來觸發事件嗎?

看板Linux作者時間15年前 (2010/12/02 11:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《shushu.bbs@ptt.cc (又過一個階段了)》之銘言: > 我想要從dmesg來獲得error資訊 > 並在出現error時去執行kill pid > 該如何實現呢? > 我應該可以做一個迴圈一直去偵測dmesg的error > 但我該如何在偵測到error時去執行我想做的事情呢? > # while true ; do dmesg -c | grep error ??? done ; > 我有想到將error訊息輸入到文字檔裡 > 然後用wc去讀取,只要行數大於1就執行kill pid > 還是有其他更可行的方法呢?? > 先謝謝各位大師 我是肉腳路人。 其實不是很麻煩,首先看 grep 的 manpage,其中 EXIT STATUS section 有以下的敘述: EXIT STATUS Normally, the exit status is 0 if selected lines are found and 1 otherwise. 所以可以這樣做(假設使用 bash): while true; do dmesg -c | grep -q 'error' && { ??? } sleep 5 done ??? 的部分就是當 grep 有從 dmesg 輸出中找到 'error' 字串時要做的事情。 詳細細節請參考 grep 以及 bash 的 manpage。如果不用 bash,或者希望 script 更一般化,可以用 if 或 test 或 [ 等指令取代 && 操作子,只是寫法會有一點 不同。 -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: c-76-111-34-186.hsd1.ga.comcast.net
文章代碼(AID): #1Czmlldv (Linux)
文章代碼(AID): #1Czmlldv (Linux)