当前位置:首页>Linux>linux wdctl命令分享

linux wdctl命令分享

  • 2026-10-21 13:30:32
linux wdctl命令分享

吃饭搞钱

一,什么是wdctl 

https://man.he.net/man8/wdctl

wdctl - 显示硬件看门狗状态

显示硬件看门狗状态。默认设备为 /dev/watchdog。如果指定了多个设备,则输出之间用一个空行分隔。

如果设备已被使用,或者用户没有读取该设备的权限,那么 wdctl 会从 sysfs 读取数据。在这种情况下,有关支持的功能(标志)的信息可能会缺失。

请注意,支持的看门狗功能数量取决于硬件。

二,参数

[root@master1 ~]# wdctl -h用法: wdctl [选项] [<设备> ...]选项: -f, --flags <list>     仅打印指定的标志 -F, --noflags          不要打印有关标志的信息 -I, --noident          不要打印看门狗身份信息 -n, --noheadings       不要为标志表打印标题 -O, --oneline          将所有信息打印在一行上 -o, --output <list>    标志的输出列 -r, --raw              为标志表使用原始输出格式 -T, --notimeouts       不要打印看门狗超时 -s, --settimeout <sec> 设置看门狗超时 -x, --flags-only       仅打印标志表(与-I -T相同) -h, --help     显示此帮助并退出 -V, --version  输出版本信息并退出The default device is /dev/watchdog.可用的列:          FLAG  标志名称   DESCRIPTION  标志描述        STATUS  标志状态   BOOT-STATUS  标志启动状态        DEVICE  看门狗设备名称更多信息请参阅 wdctl(8)。

三,例子

1、查看默认看门狗设备信息

[root@master1 ~]# wdctlwdctl: 打不开 /dev/watchdog: 没有那个文件或目录#没有硬件,可以加载软件[root@master1 ~]# lsmod | grep watchdog  [root@master1 ~]# modprobe watchdogmodprobe: FATAL: Module watchdog not found.[root@master1 ~]# modprobe softdog[root@master1 ~]# wdctl设备:      /dev/watchdog标识:      Software Watchdog [版本: 0]超时:      60 秒Pre-timeout:    0 秒FLAG           DESCRIPTION               STATUS BOOT-STATUSKEEPALIVEPING  Keep alive ping reply          1           0MAGICCLOSE     Supports magic close char      0           0SETTIMEOUT     Set timeout (in seconds)       0           0
wdctl输出信息

1. 设备信息

  • 设备:/dev/watchdog当前检查的看门狗设备路径(默认设备)。

  • 标识:Software Watchdog [版本: 0]

    • 表明这是一个软件模拟的看门狗(非硬件实现)。
    • 版本号为 0,表示基础功能(无特殊扩展)。

2. 超时设置

  • 超时:60 秒看门狗的默认超时时间。如果系统在 60 秒内 未通过 KEEPALIVEPING 保持活动,看门狗会触发复位(重启系统)。

  • Pre-timeout:0 秒预超时警告时间(通常用于提前通知系统即将触发复位)。此处为 0,表示无预警告。

3. 功能标志(FLAGS)

标志(FLAG)
描述(DESCRIPTION)
STATUS
BOOT-STATUS
KEEPALIVEPING
保持活动心跳回复
1
0
MAGICCLOSE
支持魔法关闭字符(特殊关闭方式)
0
0
SETTIMEOUT
支持动态设置超时时间(秒)
0
0
  1. KEEPALIVEPING
    • 系统需定期向 /dev/watchdog 写入数据(如通过 watchdog 服务或脚本),否则会触发复位。
    • 这是软件看门狗的核心功能,用于检测系统是否卡死。
    • STATUS=1
      :表示看门狗支持心跳机制。
  2. MAGICCLOSE
    • 某些硬件看门狗允许通过写入特定字符(如 V)安全关闭看门狗,避免误触发复位。
    • 此处为 0,说明无法通过特殊字符关闭,需谨慎操作。
    • STATUS=0
      :表示不支持魔法关闭字符。
  3. SETTIMEOUT
    • 硬件看门狗可能允许运行时调整超时(如从 60s 改为 30s),但此软件看门狗不支持。
    • STATUS=0
      :表示不支持动态修改超时时间。

4. BOOT-STATUS 列

  • 所有标志的 BOOT-STATUS 均为 0,表示这些功能在系统启动时未被激活或未检测到异常。
  • 如果是硬件看门狗,此列可能显示启动时的状态(如是否因超时触发过复位)。
2、指定看门狗设备(如 /dev/watchdog0)
[root@master1 ~]# wdctl /dev/watchdog0设备:      /dev/watchdog0标识:      Software Watchdog [版本: 0]超时:      60 秒Pre-timeout:    0 秒FLAG           DESCRIPTION               STATUS BOOT-STATUSKEEPALIVEPING  Keep alive ping reply          1           0MAGICCLOSE     Supports magic close char      0           0SETTIMEOUT     Set timeout (in seconds)       0           0[root@master1 ~]# wdctl /dev/watchdog1wdctl: 打不开 /dev/watchdog1: 没有那个文件或目录
3、仅显示标志(flags)表,不显示身份和超时信息
[root@master1 ~]# wdctl -xFLAG           DESCRIPTION               STATUS BOOT-STATUSKEEPALIVEPING  Keep alive ping reply          1           0MAGICCLOSE     Supports magic close char      0           0SETTIMEOUT     Set timeout (in seconds)       0           0[root@master1 ~]# wdctl --flags-onlyFLAG           DESCRIPTION               STATUS BOOT-STATUSKEEPALIVEPING  Keep alive ping reply          1           0MAGICCLOSE     Supports magic close char      0           0SETTIMEOUT     Set timeout (in seconds)       0           0
4、以单行格式输出全部信息
[root@master1 ~]# wdctl -O/dev/watchdog: VERSION="0" IDENTITY="Software Watchdog" TIMEOUT="60" PRETIMEOUT="0" KEEPALIVEPING="1" KEEPALIVEPING_BOOT="0" MAGICCLOSE="0" MAGICCLOSE_BOOT="0" SETTIMEOUT="0" SETTIMEOUT_BOOT="0"[root@master1 ~]# wdctl --oneline/dev/watchdog: VERSION="0" IDENTITY="Software Watchdog" TIMEOUT="60" PRETIMEOUT="0" KEEPALIVEPING="1" KEEPALIVEPING_BOOT="0" MAGICCLOSE="0" MAGICCLOSE_BOOT="0" SETTIMEOUT="0" SETTIMEOUT_BOOT="0"
5、只输出特定列(例如只看 FLAG 和 STATUS)
[root@master1 ~]# wdctl -o FLAG,STATUS设备:      /dev/watchdog标识:      Software Watchdog [版本: 0]超时:      60 秒Pre-timeout:    0 秒FLAG           STATUSKEEPALIVEPING       1MAGICCLOSE          0SETTIMEOUT          0
6、设置看门狗超时时间为 30 秒
[root@master1 ~]# wdctl -s 30Set timeout to 30 seconds设备:      /dev/watchdog标识:      Software Watchdog [版本: 0]超时:      30 秒Pre-timeout:    0 秒FLAG           DESCRIPTION               STATUS BOOT-STATUSKEEPALIVEPING  Keep alive ping reply          1           0MAGICCLOSE     Supports magic close char      0           0SETTIMEOUT     Set timeout (in seconds)       0           0
7、不显示表头(适合脚本处理)
[root@master1 ~]# wdctl -x -nKEEPALIVEPING  Keep alive ping reply          1           0MAGICCLOSE     Supports magic close char      0           0SETTIMEOUT     Set timeout (in seconds)       0           0[root@master1 ~]# wdctl  -n设备:      /dev/watchdog标识:      Software Watchdog [版本: 0]超时:      30 秒Pre-timeout:    0 秒KEEPALIVEPING  Keep alive ping reply          1           0MAGICCLOSE     Supports magic close char      0           0SETTIMEOUT     Set timeout (in seconds)       0           0
8、原始格式输出(无对齐、无修饰)
[root@master1 ~]# wdctl -r设备:      /dev/watchdog标识:      Software Watchdog [版本: 0]超时:      30 秒Pre-timeout:    0 秒FLAG DESCRIPTION STATUS BOOT-STATUSKEEPALIVEPING Keep\x20alive\x20ping\x20reply 1 0MAGICCLOSE Supports\x20magic\x20close\x20char 0 0SETTIMEOUT Set\x20timeout\x20(in\x20seconds) 0 0

四,补充

作者

Karel Zak  mailto:kzak@redhat.com,Lennart Poettering  mailto:lennart@poettering.net

报告错误

如需报告错误,请使用问题跟踪器:

https://github.com/karelzak/util-linux/issues

可用性

wdctl 命令是 util-linux 软件包的一部分,可从 Linux 内核存档处下载:

https://www.kernel.org/pub/linux/utils/util-linux/

五,总结

wdctl 是用于查看和配置 Linux 看门狗设备状态与超时设置的命令行工具,可以是查硬件,也可以是查软件,应用场景不算广泛同时也很有用。

最后的最后(Last but not least),欢迎交流:

关注公众号留言,或者在下方直接留言:

最新文章

随机文章