재부팅할 때 다음과 같은 오류 메시지가 나타나는 경우가 많습니다.
kernel: watchdog watchdog0: watchdog did not stop!
Watchdog에 대해 실행하여 자세히 알아보려고 했으나 man watchdog
수동 입력이 없다고 나오네요. 시도해 보았는데 yum list watchdog
설치가 되지 않았습니다. 그러나 /dev
디렉토리를 살펴보면 실제로 두 개의 감시 장치를 발견했습니다.
watchdog
그리고watchdog0
궁금해. 나는 정말로 감시견을 소유하고 있습니까? 재부팅해도 커널이 멈추지 않는다고 불평하는 이유는 무엇입니까?
답변1
대부분의 최신 PC 하드웨어에는 감시 타이머 기능이 포함되어 있습니다. 여기 Wikipedia를 통해 이에 대한 자세한 내용을 읽을 수 있습니다.감시 타이머. 또한 Linux 커널 문서에서:
발췌-https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt
WDT(Watchdog Timer)는 소프트웨어 오류가 발생할 경우 컴퓨터 시스템을 재설정하는 하드웨어 회로입니다. 아마도 당신은 이미 이것을 알고 있을 것입니다.
일반적으로 사용자 공간 데몬은 /dev/watchdog 특수 장치 파일을 통해 사용자 공간이 여전히 활성 상태임을 커널 감시 드라이버에 주기적으로 알립니다. 이러한 알림이 발생하면 드라이버는 일반적으로 하드웨어 감시 장치에 모든 것이 정상임을 알리고 감시 장치는 시스템을 재설정하기 위해 잠시 기다려야 합니다. 사용자 공간에 오류가 있는 경우(RAM 오류, 커널 오류 등) 알림 발생이 중지되고 하드웨어 감시는 시간 초과(재부팅 발생) 후 시스템을 재설정합니다.
Linux 감시 API는 서로 다른 드라이버가 서로 다르고 때로는 호환되지 않는 부분을 구현하는 다소 특수한 구조입니다. 이 파일은 기존 사용법을 문서화하고 향후 드라이버 작성자가 이를 참조로 사용할 수 있도록 합니다.
이 질문과 답변은 다음과 같습니다.Linux에서 하드웨어 감시 기능을 새로 고치는 사람은 누구입니까?, Linux 커널과 하드웨어 감시 타이머 간의 연결을 다룹니다.
감시견 팩은 어떻습니까?
IMO, RPM의 설명은 매우 명확합니다. 이 watchdog
데몬은 소프트웨어 감시 역할을 하거나 하드웨어 구현과 상호 작용할 수 있습니다.
감시 프로그램은 강력한 소프트웨어 감시 데몬으로 사용하거나 상주 베이스보드 관리 컨트롤러(BMC)와 인터페이스하는 IPMI 하드웨어 감시 드라이버와 같은 하드웨어 감시 장치와 상호 교환적으로 사용할 수 있습니다. watchdog은 /dev/watchdog에 주기적으로 씁니다. /dev/watchdog에 쓰는 간격은 watchdog sysconfig 파일의 설정을 통해 구성할 수 있습니다.
이 구성 파일은 워치독을 기본 소프트웨어 워치독 작업 대신 하드웨어 워치독으로 설정하는 데에도 사용됩니다. 두 경우 모두 장치가 켜져 있지만 구성된 기간 내에 기록되지 않으면 감시 타이머 만료로 인해 시스템 재부팅이 트리거됩니다. 소프트웨어 워치독으로 실행될 때 재부팅 기능은 머신 상태와 인터럽트에 따라 달라집니다.
하드웨어 감시로 실행될 때 시스템은 BMC(또는 감시 타이머가 만료될 때 수행되도록 구성된 모든 작업)에 의해 시작된 하드 재설정을 거칩니다.
답변2
참고로 설명서를 검색하려면 다음을 수행할 수 있습니다.
man -k watchdog
최소한 이름이나 제목/설명에 해당 단어를 사용하는 모든 설명서가 콘솔에 표시됩니다. 많은 옵션을 기대한다면 다음 less
과 함께 사용하는 것이 좋습니다.
man -k watchdog | less
하지만 우리의 경우에는 아마도 2~3개 이상의 항목을 얻지 못할 것입니다.
wdctl
그러면 워치독의 현재 상태/설정을 볼 수 있는 유틸리티가 표시됩니다 . 다음은 제가 사용하고 있는 Jetson 보드 중 하나의 예입니다.
$ wdctl
Device: /dev/watchdog
Identity: Tegra WDT [version 1]
Timeout: 120 seconds
Pre-timeout: 0 seconds
FLAG DESCRIPTION STATUS BOOT-STATUS
KEEPALIVEPING Keep alive ping reply 0 0
MAGICCLOSE Supports magic close char 0 0
SETTIMEOUT Set timeout (in seconds) 0 0
Timeout
이 항목은 자동 재시작을 강제하기 전에 워치독이 대기하는 시간을 알려주는 것을 볼 수 있습니다 .
최신 버전의 Linux에서는 이 작업이 를 통해 수행됩니다 systemd
. /etc/systemd/system.conf
여러 매개변수를 찾을 수 있는 위치를 확인하세요(보통 기본적으로 주석 처리되어 있음).
[Manager]
...
#RuntimeWatchdogSec=0
#ShutdownWatchdogSec=10min
...
노트:더 편리하다면 apropos
대신 명령줄 도구를 사용할 수도 있습니다. 이 경우에는 필요하지 않지만 man -k
동일한 작업을 수행합니다 .-k
apropos watchdog
기본적으로 키워드( watchdog
이 경우)는 정규 표현식일 수도 있습니다.