Задержка паники ядра в Linux - PullRequest
       40

Задержка паники ядра в Linux

0 голосов
/ 27 февраля 2019

Для наших тестов нам нужно вызвать панику ядра на удаленном сервере (ВМ) через SSH:

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 ожидает окончания сна.

1 Ответ

0 голосов
/ 27 февраля 2019

Это происходит потому, что ваш скрипт сохраняет все каналы открытыми, поэтому 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
...