시스템 하드웨어 감시 상태를 확인하는 방법

시스템 하드웨어 감시 상태를 확인하는 방법

systemd를 사용하여 하드웨어 감시 상태를 확인하는 방법은 무엇입니까?

util-linux일부 정보를 인쇄하는 명령을 사용할 수 있지만 wdctl항상 작동하지는 않습니다(예: Raspberry Pi 3 이상). Pi 3를 예로 들어 보겠습니다.

# wdctl /dev/watchdog0
wdctl: cannot read information about /dev/watchdog0: No such file or directory
# wdctl /dev/watchdog
wdctl: cannot read information about /dev/watchdog: No such file or directory

그러나 감시 장치가 활성화된 것 같습니다.

# dmesg | grep watchdog
[    6.985782] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[   17.190956] systemd[1]: Using hardware watchdog 'Broadcom BCM2835 Watchdog timer', version 0, device /dev/watchdog
[   17.206391] systemd[1]: Set hardware watchdog to 15s.

그렇다면 하드웨어 감시의 현재 상태와 systemd 자체가 이를 통해 수행하는 작업을 표시하는 데 사용할 수 있는 systemd 특정 명령이 있습니까?

이전 감시 서비스는 더 이상 적용되지 않습니다. 이는 systemd가 기본 하드웨어 감시 지원을 받기 전이었기 때문입니다.

# systemctl status watchdog
Unit watchdog.service could not be found.

wdctl워치독 타이머가 활성화된 위치, 사용 중인 위치, 현재 시간 제한이 어떻게 설정되어 있는지 와 유사한 정보를 제공하는 명령을 실행하고 있습니다 . 일종의 systemctl list-timers하드웨어 감시자용입니다.

답변1

Watchdog은 특수 장치입니다. 이는 보고한 wdctl 출력에 대해 설명합니다.

그러나 모든 감시 장치는 해당 설정을 /sys로 내보냅니다.

그런 다음 /sys/class/watchdog/*에서 찾을 수 있습니다.

명령을 원하면 그것이 grep . /sys/class/watchdog/*/*필요한 일을 해줄까요?

답변2

저도 같은 생각을 하고 비슷한 질문을 검색해 본 결과 다음과 같은 결론을 얻었습니다.

sudo strace -t -e ioctl  -p1  | grep WDIOC_KEEPALIVE

시간 초과 간격의 중간에 다음과 유사한 내용이 표시됩니다.

01:15:47 ioctl(9, WDIOC_KEEPALIVE)      = 0  
...

이는 프로세스의 모든 ioctl 호출을 strace모니터링 pid 1( )한 다음 이를 필터링하는 데 사용됩니다 . systemd는 감시 하드웨어를 "ping"하여 재부팅을 방지하는 데 사용됩니다.systemd initWDIOC_KEEPALIVEWDIOC_KEEPALIVE

관련 정보