[英]Delayed kernel panic in Linux
對於我們的測試,我們需要通過SSH在遠程服務器(VM)上觸發內核崩潰:
ssh server "echo c > /proc/sysrq-trigger"
問題在於,在大多數情況下,SSH會話會卡住,因為內核恐慌會在斷開連接之前發生。 有一個通用的連接超時,但這還不夠好。
有沒有辦法延遲恐慌?
我們嘗試將以下內容放入服務器上的文件中:
# - panic.sh -
#/bin/bash
sleep 5
echo c > /proc/sysrq-trigger
然后執行它:
ssh server "nohup panic.sh &"
但這沒有幫助。 SSH會話一直等到睡眠結束。
發生這種情況是因為您的腳本使所有管道保持打開狀態,所以ssh
必須等待看是否還要編寫更多內容。
如果您全部關閉它們, ssh
知道它將不再收到任何輸出,並且將退出:
$ time ssh localhost 'sleep 5 < /dev/null > log 2>&1 &'
real 0m0.171s
user 0m0.013s
sys 0m0.003s
您還可以在睡眠之前使用exec
命令從腳本內執行此操作:
exec < /dev/null > log 2>&1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.