공황 상태에서 재부팅하도록 Linux 커널을 조기에 구성하는 방법은 무엇입니까? N”을 넣어 패닉

커널 명령 줄에 “panic = N”을 넣어 패닉 발생 후 N 초 후에 시스템을 재부팅 할 수 있습니다.

그러나 부트 로더조차도 작동하기 전에 이것을 지정하는 구성 옵션이 있습니까 (기본 커널 명령 행 옵션 제외)? 일부 커널 옵션은 무엇입니까?



답변

그러한 구성 옵션이없는 것 같습니다. http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt#1898 에 따르면 기본 시간 초과는 0 이며 “영원히 대기”입니다.

이 옵션은 kernel / panic.c에 정의되어 있으며 , 초기 값을 다른 것으로 설정하는 패치를 작성할 수 있습니다.

3 초 후에 재부팅을 하드 코딩하려면 다음을 변경하십시오.

int panic_timeout;

에:

int panic_timeout = 3;


답변

보낸 사람 man proc:

/ proc / sys / kernel / panic

이 파일은 커널 변수 panic_timeout에 대한 읽기 / 쓰기 액세스를 제공합니다. 이것이 0이면 커널은 공황 상태를 반복합니다. 0이 아닌 경우이 시간 (초) 후에 커널이 자동 재부팅되어야 함을 나타냅니다. 소프트웨어 워치 독 장치 드라이버를 사용하는 경우 권장 설정은 60입니다.


답변

구성 파일은 부팅시 호출되는 매개 변수이므로 파일 시스템이 마운트되지 않은 동안 다른 구성 파일에서 읽을 수 없기 때문에 부팅 (grub) 구성 파일 자체입니다.

그러나 초기화 된 설정이므로를 통해 런타임을 수정할 수도 있습니다 sysctl. 따라서 기본적 /etc/sysctl.conf으로 매개 변수 kernel.panic = 3를 사용하여 업데이트하는 것이 구성 업데이트입니다.


답변

kernel.panicA는 sysctl을가 . sysctl.d 를 통해 여러 가지 방법으로 구성 할 수 있습니다 .


답변

Linux Kernel에서는 (3 이상에서 보았습니다)에 옵션이 .config있습니다. CONFIG_PANIC_TIMEOUT매개 변수이며 기본값은 0입니다. 이 버전의 Linux 커널에서는 Lekensteyn의 답변도 효과가 있습니다. 그러나 그 변수는 .config유일한 것입니다.

int panic_timeout = CONFIG_PANIC_TIMEOUT;


답변

리눅스 커널 지원 CONFIG_CMDLINE_BOOL

빌드시 커널에 부팅 인수를 지정할 수 있습니다. 일부 시스템 (예 : 임베디드 시스템)에서는 커널 부트 인수 중 일부 또는 전부를 커널 자체에 제공해야합니다 (즉, 부트 로더에 의존하지 않음).

예를 들어이 “포털”에 대한 예가 있습니다.

/superuser/778826/config-cmdline-override-set-but-hardcoded-vga-boot-parameter-ignored


답변

패치 를 사용 하면 구성 옵션이 추가됩니다.