Czym jest Kernel Panic?

Kernel Panic to jeden z najpoważniejszych błędów, jakie mogą wystąpić w systemie operacyjnym Linux. Jest to sytuacja, w której jądro systemu napotyka na krytyczny błąd, z którego nie jest w stanie się odratować. W rezultacie system zatrzymuje swoje działanie, aby zapobiec dalszym uszkodzeniom danych. Zazwyczaj na ekranie wyświetlany jest szczegółowy komunikat o błędzie, a system przestaje odpowiadać.

Choć Kernel Panic może wyglądać groźnie, jest to mechanizm obronny. Co jednak system powinien zrobić po wystąpieniu paniki? Tutaj z pomocą przychodzi parametr kernel.panic.

Do czego służy kernel.panic?

kernel.panic to parametr systemowy (sysctl), który pozwala administratorowi zdefiniować, jak system operacyjny ma się zachować po wystąpieniu Kernel Panic. Domyślnie system po prostu “zamraża się”, czekając na ręczny restart. W środowiskach serwerowych, zwłaszcza tych bez bezpośredniego dostępu fizycznego, takie zachowanie jest niepożądane.

Dzięki kernel.panic możemy nakazać systemowi automatyczny restart po określonym czasie, co jest kluczowe dla zapewnienia wysokiej dostępności usług.

Możliwe wartości i ich znaczenie

Wartość parametru kernel.panic to liczba całkowita, która określa liczbę sekund, po jakiej system ma się automatycznie zrestartować po wystąpieniu paniki.

Wartości te można sprawdzić i ustawić za pomocą polecenia sysctl:

# Sprawdzenie aktualnej wartości
sysctl kernel.panic

# Ustawienie nowej wartości (np. restart po 10 sekundach)
sudo sysctl -w kernel.panic=10

Aby zmiana była trwała, należy dodać odpowiedni wpis do pliku /etc/sysctl.conf lub do pliku w /etc/sysctl.d/:

kernel.panic = 10

Oto, co oznaczają poszczególne wartości:

  • kernel.panic = 0 (wartość domyślna)

    • Działanie: System nie restartuje się automatycznie. Po wystąpieniu Kernel Panic, system zatrzymuje się i czeka na interwencję administratora (ręczny restart). Jest to przydatne w celach diagnostycznych, ponieważ pozwala na zbadanie komunikatu o błędzie na ekranie lub przez konsolę szeregową.
  • kernel.panic > 0 (wartość dodatnia, np. 10)

    • Działanie: System automatycznie zrestartuje się po upływie określonej liczby sekund. Na przykład, jeśli wartość wynosi 10, system odczeka 10 sekund, a następnie uruchomi się ponownie. Jest to najczęściej używana opcja na serwerach produkcyjnych, gdzie szybki powrót do działania jest priorytetem.
  • kernel.panic < 0 (wartość ujemna, np. -1)

    • Działanie: System zrestartuje się natychmiastowo, bez żadnego opóźnienia. Jest to opcja używana w systemach o bardzo wysokiej krytyczności, gdzie każda sekunda niedostępności ma znaczenie, a opóźnienie na zrzut pamięci (kdump) nie jest wymagane.

Podsumowanie

Parametr kernel.panic jest prostym, ale potężnym narzędziem w arsenale administratora Linuksa. Umożliwia zautomatyzowanie reakcji na jeden z najpoważniejszych błędów systemowych, co przekłada się na większą stabilność i dostępność usług. Na serwerach produkcyjnych ustawienie go na niewielką dodatnią wartość (np. 5 lub 10 sekund) jest niemal obowiązkową praktyką.