/***********************************************************************                    linux watchdog demo hacking* 说明:*     本文主要解析linux watchdog大概应该如何操作。**                                    2016-3-28 深圳 南山平山村 曾剑锋*********************************************************************/#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/watchdog.h>int fd;/** This function simply sends an IOCTL to the driver, which in turn ticks* the PC Watchdog card to reset its internal timer so it doesn't trigger* a computer reset.* 这个函数仅仅是发送一个IOCTL命令给驱动,重新启动Watchdog的内部时钟计数器,* 这样就不会导致系统重启。*/
static void keep_alive(void)
{int dummy;ioctl(fd, WDIOC_KEEPALIVE, &dummy);
}/** The main program.  Run the program with "-d" to disable the card,* or "-e" to enable the card.* 主程序,通过传递参数-d来关闭watchdog,-e来打开watchdog。*/
int main(int argc, char *argv[])
{int flags;// 打开设备节点fd = open("/dev/watchdog", O_WRONLY);if (fd == -1) {fprintf(stderr, "Watchdog device not enabled.\n");fflush(stderr);exit(-1);}if (argc > 1) {// 关闭watchdogif (!strncasecmp(argv[1], "-d", 2)) {flags = WDIOS_DISABLECARD;ioctl(fd, WDIOC_SETOPTIONS, &flags);fprintf(stderr, "Watchdog card disabled.\n");fflush(stderr);exit(0);// 使能watchdog} else if (!strncasecmp(argv[1], "-e", 2)) {flags = WDIOS_ENABLECARD;ioctl(fd, WDIOC_SETOPTIONS, &flags);fprintf(stderr, "Watchdog card enabled.\n");fflush(stderr);exit(0);} else {fprintf(stderr, "-d to disable, -e to enable.\n");fprintf(stderr, "run by itself to tick the card.\n");fflush(stderr);exit(0);}} else {fprintf(stderr, "Watchdog Ticking Away!\n");fflush(stderr);}while(1) {// 每一秒喂狗一次
        keep_alive();sleep(1);}
}

转载于:https://www.cnblogs.com/zengjfgit/p/5328356.html

linux watchdog demo hacking相关推荐

  1. Qt 控制watchdog app hacking

    /*************************************************************************** Qt 控制watchdog app hacki ...

  2. Linux Watchdog Test Program

    /************************************************************************ Linux Watchdog Test Progra ...

  3. Linux Watchdog/看门狗

    Watchdog timer(看门狗定时器)是一种电子计时器,其用于检测和恢复计算机故障.在正常操作期间,计算机定期重置看门狗定时器以防止它"超时".如果由于硬件故障或程序错误,计 ...

  4. Linux Watchdog 机制

    ​前言 Watchdog 是 Linux 系统一个很重要的机制,其目的是监测系统运行的情况,一旦出现锁死,死机的情况,能及时重启机器(取决于设置策略),并收集crash dump. watchdog, ...

  5. linux中demo当前目录,Linux pwd命令:显示当前路径

    由于Linux文件系统中有许多目录,当用户执行一条 Linux 命令又没有指定该命令或参数所在的目录时,Linux系统就会首先在当前目录(目前的工作目录)搜寻这个命令或它的参数.因此,用户在执行命令之 ...

  6. linux watchdog应用

    最近机器运行一段时间后会出现卡顿,然后就是无法远程连接(ssh/telnet)均不可,接着就会出现无法ping通的问题:经过一番调查发现驱动程序里有一个线程死循环了,虽然使用了udelay()函数做延 ...

  7. arm linux下看门狗应用,arm linux watchdog 看门狗

    目前手上有个项目需要设计看门狗,是arm+CPLD 方式.由于对看门狗要求很高,打算做一个双看门狗,arm CPLD互相为 对方的看门狗.理论上CPLD是不需要看门狗的,还是这么去设计了.接下来对看门 ...

  8. linux串口 demo 解析原创 代码没有完全测试

    /* ************************************************************************************************* ...

  9. Linux内核 eBPF:Hacking Linux USDT with Ftrace

    Linux内核 eBPF Hacking Linux USDT with Ftrace Hacking Linux USDT with Ftrace usdt (ftrace) · GitHub lt ...

最新文章

  1. 单机结构 集群结构 分布式结构
  2. ​灾备,让世界早有准备
  3. 打开有视频的文件夹~~当遇到某些特定的视屏格式就会出现Activemovie Window:Explorer.EXE-应用程序错误
  4. Spring入门介绍:
  5. 文件服务器冷热数据划分,游戏服务器冷热数据分离方案
  6. 记录 之 tensorflow 常用函数:tf.split(),tf.clip_by_value() 和 tf.cond()
  7. 类目,延展,协议的基本概念
  8. 入门训练 A+B问题 c语言
  9. 2017广东全国计算机12月,2018年广东考研时间:2017年12月23日至24日
  10. Java实现 给定三个 int 变量, 求其中的最大值和最小值
  11. 佳能Canon FAX-L160 传真机驱动
  12. z变换解差分方程例题_Z变换及差分方程的求解
  13. 从微信导出表情包的简便方法 (不使用微信 for pc,无需进入文件夹寻找!)
  14. SpringBoot 快速集成 JWT 实现用户登录认证
  15. 单词记忆系统二:音标字符输入(re从字符串中提取音标字符;依序打印音标字符;输入对应序号;替换序号。-> 完成“音标输入”)
  16. 【JS】隐匿在计算机软硬件背后的语言
  17. 回顾 深度学习 实验三 线性回归
  18. Ubuntu 下安装Chrom浏览器
  19. anemometer mysql_MySQL慢日志简介及Anemometer工具介绍
  20. 比游戏还有意思的事情是什么(有自己坚持和梦想的不要看,这篇就是水文)

热门文章

  1. 2010.6.15 常用数据类型转换总结
  2. 第一个django项目-通过命令行和pycharm两种方式
  3. 使用 EOLINKER 进行接口测试的最佳路径 (下)
  4. msvcr100.dll丢失原因及解决方法
  5. MySQL 解压缩安装
  6. iptables 配置 使用-3
  7. Day2_and_Day3 文件操作
  8. 应对海量并发请求,首席布道师谈微服务的应用架构设计
  9. 检查单 2014-06-20-01
  10. 史上最全的Web性能测试工具大全(下 )