Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备(俗称“开门放狗”),就会导致在内核中启动一个1分钟的定时器(系统默认时间),此后,用户空间程序需要保证在1分钟之内向这个设备写入数据(俗称“定期喂狗”),每次写操作会导致重新设定定时器。如果用户空间程序在1分钟之内没有写操作,定时器到期会导致一次系统 reboot 操作(“狗咬人了”呵呵)。通过这种机制,我们可以保证系统核心进程大部分时间都处于运行状态,即使特定情形下进程崩溃,因无法正常定时“喂狗”,Linux系统在看门狗作用下重新启动(reboot),核心进程又运行起来了。多用于嵌入式系统。

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <syslog.h>
#include <errno.h>  void main(void)
{  int fd_watchdog = open("/dev/watchdog", O_WRONLY);  if(fd_watchdog == -1)  {  int err = errno;  printf("failed to open /dev/watchdog, errno: %d, %s\n", err, strerror(err));  return;  }  else  {  printf("open watchdog success!\n");  }  // 每个一段时间向/dev/watchdog 设备写入数据(“定期喂狗”)  if(fd_watchdog >= 0)  {  static unsigned char food = 0;  ssize_t eaten = write(fd_watchdog, &food, 1);  if(eaten != 1)  {  printf("failed feeding watchdog\n");  }  else  {  printf("success feeded watchdog\n");  }  }  //close(fd_watchdog);
}  

转载于:https://www.cnblogs.com/Ph-one/p/8586514.html

Linux 软件看门狗 watchdog 喂狗相关推荐

  1. Linux 软件看门狗 watchdog

    Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序.内核 watchdog 模块通过 /dev ...

  2. linux shell 看门狗,Linux 下如何使用看门狗

    Linux内核有集成WD的选项.将其使能后,系统里就会有watchdog的设备驱动:/dev/watchdog. 这样,在应用程序里只需打开这个设备使用即可: #include void main(v ...

  3. linux软件实现看门狗,一个软件实现的Linux看门狗—soft_wdt

    soft_wdt(下面简称本软件)是一个软件实现的Linux看门狗. 本软件是一款开源.免费软件. 下载地址: 本软件和/drivers/watchdog/softdog.c实现的软件看门狗差点儿一样 ...

  4. linux 硬件看门狗 软件看门狗,如何确定机器上是否实现了硬件或软件看门狗?...

    我有一台我试图开发的嵌入式计算机,我想知道它的看门狗是软件看门狗还是硬件看门狗. 首先我查看了,我看到/ dev / watchdog存在于/ dev中.但是当我发布ps时,我没有看到看门狗进程.所以 ...

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

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

  6. 12011.linux之看门狗应用开发

    看门狗电路 1 博客 2 原理介绍 3 通过gpio子系统进行直接控制管脚的电平 3.1 电路图 1 博客 linux下用文件控制gpio的输出电平 2 原理介绍 软件看门狗:一些重要的程序,必须让它 ...

  7. [看门狗]基于Linux的嵌入式系统全程喂狗策略

    https://www.cnblogs.com/aaronLinux/p/8073898.html https://github.com/aaronRong [看门狗]基于Linux的嵌入式系统全程喂 ...

  8. linux内核看门狗关闭方法,linux内核中断之看门狗

    一:内核中断 linux内核中的看门狗中断跟之前的裸板的中断差不多,在编写驱动之前,需要线把内核自带的watch dog模块裁剪掉,要不然会出现错误:在Device Drivers /Watchdog ...

  9. uboot详解——cpu内部,外部和软件看门狗

    uboot启动时,当将cpu运行模式设置为管理模式后,就要关闭看门狗了,那么看门狗是干什么的呢? 狗狗是我们的好朋友,有时候,一条好狗狗能够救主人的性命,"看门狗"是cpu的&qu ...

最新文章

  1. Git环境搭建与基本使用方法 (转自http://blog.csdn.net/fireelement/article/details/9618363)
  2. Dependence Injection
  3. 小强系列之大话移动测试
  4. linux ftp 登录慢,linux中vsftpd登录,上传下载文件慢解决办法linux操作系统 -电脑资料...
  5. 简单的读取文件和写入文件
  6. LeetCode OJ - Surrounded Regions
  7. AI2想从常识测试开始让AI理解物理世界,数据集已公布
  8. gin mongodb restful api设计: 动态的patch接口
  9. 如何使用wnr计时来管理你的时间计划
  10. 中值滤波器的matlab实现
  11. 中小企业如何有效利用桌面共享软件降低营运成本
  12. 五个维度打造研发管理体系
  13. 马化腾的互联网之路:别人不是打不赢你,掌声越热烈就越危险
  14. FBE 与FDE学习总结
  15. mysql主从配置duxi_做Mysql主从时,注意使用replicate_wild_do_table和replicate-wild-ignore-table...
  16. 关于框架,到底什么是框架?
  17. div层调整zindex属性无效原因分析及解决方法
  18. ELO算法原理及实现
  19. dedecms(织梦cms)安装99bill(快钱)支付方式接口
  20. 相位解包裹 matlab,二维相位解包裹matlab

热门文章

  1. PhpExcel数组输出到Excel浏览器下载
  2. HDOJ 1896 Stones
  3. Android用户界面
  4. A fully managed website and blog hosting platform
  5. 在Silverlight 和WPF中使用预编译指令 if..else..endif (译)
  6. HTML Table 固定列宽,实现excel表格效果
  7. 给学习java web新手们的建议和推荐一些书籍
  8. python 根据索引取值_Python基础知识2
  9. 小程序api 分享scene_微信小程序 插件调用API的限制
  10. 利用dynamoRIO实现codeCoverage