Como configurar o kernel do Linux para reiniciar no pânico?

11

Você pode colocar "panic = N" na linha de comando do kernel para fazer o sistema reiniciar N segundos depois de um pânico. Existe uma opção de configuração para especificar isso (diferente da opção de linha de comando do kernel padrão)?

    
por Shawn J. Goff 20.01.2012 / 17:22

7 respostas

3

Não parece haver essa opção de configuração. O tempo limite padrão é 0, que, de acordo com o link , é "esperar para sempre".

A opção está definida em kernel / panic.c , você pode escrever um patch que define o valor inicial para algo diferente.

Para codificar uma reinicialização após 3 segundos, altere:

int panic_timeout;

para:

int panic_timeout = 3;
    
por 20.01.2012 / 17:57
16

Em man proc :

/proc/sys/kernel/panic

This file gives read/write access to the kernel variable panic_timeout. If this is zero, the kernel will loop on a panic; if nonzero it indicates that the kernel should autoreboot after this number of seconds. When you use the software watchdog device driver, the recommended setting is 60.

    
por 20.01.2012 / 17:27
5

O arquivo de configuração é o próprio arquivo de configuração do boot (grub), já que é um parâmetro invocado no momento da inicialização e não se pode esperar que o grub leia algum outro arquivo de configuração enquanto o sistema de arquivos não estiver montado.

No entanto, sendo essa uma configuração inicializada, o tempo de execução também pode ser modificado através de sysctl . Portanto, atualizar essencialmente /etc/sysctl.conf com o parâmetro kernel.panic = 3 é uma atualização de configuração.

    
por 20.01.2012 / 18:22
2

kernel.panic é um sysctl . Há muitas maneiras de configurá-las, por exemplo, por meio de sysctl.d .

    
por 02.01.2015 / 13:06
2

No Kernel do Linux, (eu vi em 3 e acima) existe a opção no .config . CONFIG_PANIC_TIMEOUT é o parâmetro e o padrão é 0 . Nessas versões do kernel Linux, a resposta de Lekensteyn também funcionará. Mas essa variável está tomando apenas do .config .

int panic_timeout = CONFIG_PANIC_TIMEOUT;
    
por 11.03.2016 / 06:43
0

Você pode usar o este patch, que adiciona uma opção de configuração.

    
por 01.03.2013 / 20:02
0

primeiro conclua a informação em outras respostas. o valor é definido em kernel / panic.c e rw através de sysctl. pode ser passado como um commanline de inicialização.

O que mais estou prestes a dizer, a linha de comando de inicialização pode ser definida como valor padrão durante a compilação .

    
por 31.03.2015 / 06:29