Linux 软件看门狗 watchdog 喂狗
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 喂狗相关推荐
- Linux 软件看门狗 watchdog
Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序.内核 watchdog 模块通过 /dev ...
- linux shell 看门狗,Linux 下如何使用看门狗
Linux内核有集成WD的选项.将其使能后,系统里就会有watchdog的设备驱动:/dev/watchdog. 这样,在应用程序里只需打开这个设备使用即可: #include void main(v ...
- linux软件实现看门狗,一个软件实现的Linux看门狗—soft_wdt
soft_wdt(下面简称本软件)是一个软件实现的Linux看门狗. 本软件是一款开源.免费软件. 下载地址: 本软件和/drivers/watchdog/softdog.c实现的软件看门狗差点儿一样 ...
- linux 硬件看门狗 软件看门狗,如何确定机器上是否实现了硬件或软件看门狗?...
我有一台我试图开发的嵌入式计算机,我想知道它的看门狗是软件看门狗还是硬件看门狗. 首先我查看了,我看到/ dev / watchdog存在于/ dev中.但是当我发布ps时,我没有看到看门狗进程.所以 ...
- arm linux下看门狗应用,arm linux watchdog 看门狗
目前手上有个项目需要设计看门狗,是arm+CPLD 方式.由于对看门狗要求很高,打算做一个双看门狗,arm CPLD互相为 对方的看门狗.理论上CPLD是不需要看门狗的,还是这么去设计了.接下来对看门 ...
- 12011.linux之看门狗应用开发
看门狗电路 1 博客 2 原理介绍 3 通过gpio子系统进行直接控制管脚的电平 3.1 电路图 1 博客 linux下用文件控制gpio的输出电平 2 原理介绍 软件看门狗:一些重要的程序,必须让它 ...
- [看门狗]基于Linux的嵌入式系统全程喂狗策略
https://www.cnblogs.com/aaronLinux/p/8073898.html https://github.com/aaronRong [看门狗]基于Linux的嵌入式系统全程喂 ...
- linux内核看门狗关闭方法,linux内核中断之看门狗
一:内核中断 linux内核中的看门狗中断跟之前的裸板的中断差不多,在编写驱动之前,需要线把内核自带的watch dog模块裁剪掉,要不然会出现错误:在Device Drivers /Watchdog ...
- uboot详解——cpu内部,外部和软件看门狗
uboot启动时,当将cpu运行模式设置为管理模式后,就要关闭看门狗了,那么看门狗是干什么的呢? 狗狗是我们的好朋友,有时候,一条好狗狗能够救主人的性命,"看门狗"是cpu的&qu ...
最新文章
- Git环境搭建与基本使用方法 (转自http://blog.csdn.net/fireelement/article/details/9618363)
- Dependence Injection
- 小强系列之大话移动测试
- linux ftp 登录慢,linux中vsftpd登录,上传下载文件慢解决办法linux操作系统 -电脑资料...
- 简单的读取文件和写入文件
- LeetCode OJ - Surrounded Regions
- AI2想从常识测试开始让AI理解物理世界,数据集已公布
- gin mongodb restful api设计: 动态的patch接口
- 如何使用wnr计时来管理你的时间计划
- 中值滤波器的matlab实现
- 中小企业如何有效利用桌面共享软件降低营运成本
- 五个维度打造研发管理体系
- 马化腾的互联网之路:别人不是打不赢你,掌声越热烈就越危险
- FBE 与FDE学习总结
- mysql主从配置duxi_做Mysql主从时,注意使用replicate_wild_do_table和replicate-wild-ignore-table...
- 关于框架,到底什么是框架?
- div层调整zindex属性无效原因分析及解决方法
- ELO算法原理及实现
- dedecms(织梦cms)安装99bill(快钱)支付方式接口
- 相位解包裹 matlab,二维相位解包裹matlab
热门文章
- PhpExcel数组输出到Excel浏览器下载
- HDOJ 1896 Stones
- Android用户界面
- A fully managed website and blog hosting platform
- 在Silverlight 和WPF中使用预编译指令 if..else..endif (译)
- HTML Table 固定列宽,实现excel表格效果
- 给学习java web新手们的建议和推荐一些书籍
- python 根据索引取值_Python基础知识2
- 小程序api 分享scene_微信小程序 插件调用API的限制
- 利用dynamoRIO实现codeCoverage