Kernel Panic w Linuxie — przyczyny i rozwiązania
Kernel Panic następuje, gdy jądro trafia na krytyczny błąd, z którego nie może się odratować — system zatrzymuje się, aby zapobiec uszkodzeniu danych. Domyślnie czeka zamrożony na ręczny restart. Parametr sysctl kernel.panic to zmienia: nakazuje systemowi automatyczny reboot po określonej liczbie sekund, co jest niezbędne na serwerach bez bezpośredniego dostępu.
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.
- Działanie: System automatycznie zrestartuje się po upływie określonej liczby sekund. Na przykład, jeśli wartość wynosi
-
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.
Na serwerach produkcyjnych ustawienie kernel.panic na niewielką wartość dodatnią (np. 5 lub 10) to standardowa praktyka.