如何提前配置 Linux 内核以在恐慌时重新启动?

Sha*_*off 15 linux kernel-panic linux-kernel

您可以在内核命令行上输入“panic=N”,使系统在发生恐慌后 N 秒重新启动。

但是在引导加载程序发挥作用之前,是否有一个配置选项来指定这个(除了默认的内核命令行选项)?某些内核选项可能是?

小智 19

来自man proc

/proc/sys/kernel/panic

该文件提供对内核变量 panic_timeout 的读/写访问。如果这是零,内核将在恐慌中循环;如果非零,则表示内核应在此秒数后自动重启。当您使用软件看门狗设备驱动程序时,建议设置为 60。


Nik*_*ley 5

配置文件是引导 (grub) 配置文件本身,因为它是在引导时调用的参数,并且在未挂载文件系统的情况下,不能期望 grub 从其他配置文件中读取。

但是,这是一个初始化设置,运行时也可以通过sysctl. 因此,本质上/etc/sysctl.conf使用参数更新kernel.panic = 3是配置更新。


Lek*_*eyn 2

好像没有这样的配置选项。默认超时为 0,根据http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt#1898,它是“永远等待”。

该选项在kernel/panic.c中定义,您可以编写一个补丁将初始值设置为不同的值。

要在 3 秒后硬编码重新启动,请更改:

int panic_timeout;
Run Code Online (Sandbox Code Playgroud)

到:

int panic_timeout = 3;
Run Code Online (Sandbox Code Playgroud)