Как я вызываю сторожевой сброс своего встроенного устройства Linux

Не большая часть списка, но тем не менее довольно полезный. Просто переройте страницы справочника путем перехода назад и вперед к подобранным (нечувствительным к регистру) выражениям.

# use n or shift-n to cycle through the matches
man bash | less -Ip 'parameter expansion'  
5
07.02.2013, 14:16
3 ответа

Если у Вас есть сторожевой таймер в Вашей системе и драйвер, который использует /dev/watchdog, все, что необходимо сделать, является уничтожением процесс, который подает его; если нет такого процесса, то Вы можете touch /dev/watchdog однажды для включения его, и если Вы не касаетесь его снова он сбросит.

Вы также могли бы интересоваться сбросом устройства с помощью "волшебства sysrq" путь. Если у Вас есть ядро с CONFIG_MAGIC_SYSRQ функция скомпилировала в, затем Вы можете echo 1 > /proc/sys/kernel/sysrq включить его, затем echo b > /proc/sysrq-trigger к перезагрузке. Когда Вы делаете это, это сразу перезагружает, не размонтировавшись или или синхронизируя файловые системы.

14
27.01.2020, 20:31
  • 1
    Просто уничтожение сторожевого демона не могло бы быть достаточно хорошим. В зависимости от того, как настроено сторожевое устройство, оно могло бы отключить сторожевой таймер, если/dev/watchdog закрывается. В этом случае можно попытаться отправить SIGSTOP в сторожевой процесс вместо этого. –  Kristof Provost 07.02.2013, 17:22
  • 2
    При уничтожении сторожевого демона, необходимо использовать SIGKILL а не обычный SIGTERM, который выполняет организованное завершение работы и так закрывает драйвер. Используя SIGSTOP, как предложено @KristofProvost достигает той же цели предотвращения периодического обновления. –  Paul Crawford 02.10.2016, 12:54

Если Вы думаете, что сторожевой таймер работает хорошо, и хотят протестировать это, это действительно способно к восстановлению разрушенной системы, то можно сделать один лучше, чем ответ Shawn при помощи "волшебства sysrq" для катастрофического отказа системы с паникой ядра. Синхронизация Вашей файловой системы сначала является хорошей идеей, также - что-то вроде этого как корень:

sync; sleep 2; sync; echo c > /proc/sysrq-trigger

Это должно вызвать панику ядра, если sysrq включен. Затем, если Вы ожидаете приблизительно 60 секунд (типичный тайм-аут для сторожевого модуля), необходимо видеть перезагрузку машины. Обратите внимание, что это будет только работать с аппаратными сторожевыми таймерами а не 'softdog' модулем.

7
27.01.2020, 20:31

Просто помещаю это в одну строку из двух предыдущих постов:

echo 1 | sudo tee -a /proc/sys/kernel/sysrq; sync; sleep 2; sync; echo c | sudo tee -a /proc/sysrq-trigger
1
27.01.2020, 20:31

Теги

Похожие вопросы