Majac klaster wysokiej dostępności, zwykły router oparty na systemie Linux lub tez telefon z systemem Android chcemy żeby w momencie krytycznych błędów, system dalej pracował poprawnie. Niestety nie zawsze jest to możliwe w zależności od typu oraz krytyczności problemu. Co najlepiej wtedy zrobić: zresetować system a najlepiej gdyby się to robiło automatycznie. Linux a bardziej jądro systemu dostarcza takowe mechanizmy,
Jak sprawdzić czy mechanizm ten jest uruchomiony:
cat /proc/sys/kernel/panic 0
lub
sysctl kernel.panic kernel.panic = 0
Zero oznacza ze system nie zresetuje się automatycznie w przypadku wewnętrznego błędu jądra systemu.
Jak go włączyć:
echo "1" > /proc/sys/kernel/panic
lub
sysctl kernel.panic=1
Wartość to ilość sekund po jakiej nastąpi restart systemu po wystąpieniu problemu.
Wartość -1 oznacza natychmiastowy restart bez jakiegokolwiek czekania.
Jednak ustawienie tej opcji to nie wszystko. Musimy jeszcze określić na jakie typy błędów system ma zareagować kernel panic a następnie restartem systemu.
Mamy tutaj szereg opcji;
kernel.hardlockup_panic kernel.hung_task_panic kernel.panic_on_io_nmi kernel.panic_on_oops kernel.panic_on_rcu_stall kernel.panic_on_unrecovered_nmi kernel.panic_on_warn kernel.softlockup_panic kernel.unknown_nmi_panic vm.panic_on_oom - brak pamięci
Ustawienie wartości na 1 spowoduje kernel panic i o ile mamy ustawiona wartość kernel.panic to nastąpi restart systemu.
W większości dystrybucji możemy te wartości na stale ustawić w pliku konfiguracyjnym /etc/sysctl.conf.
Dodaj komentarz