Linux内核有集成WD的选项。将其使能后,系统里就会有watchdog的设备驱动:/dev/watchdog.

这样,在应用程序里只需打开这个设备使用即可:

#include

void main(void)

{

int fdWD;

char chrTmp;

fdWD = open("/dev/watchdog", O_RDWR); //设备一打开,看门狗也就出洞了。

for(;;)

{

write(fdWD, &chrTmp, 1);   //任一指针就行了,因为内部并未使用;最后的数据非零就行了,因为内部只是判断是否零 来置狗为初值。

sleep(10);  //在我的板上,  16秒后狗才出动,所以10喂一次也就行了。

}

}

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

打开 /dev/watchdog 设备(“开门放狗”):

int fd_watchdog = open("/dev/watchdog", O_WRONLY);

if(fd_watchdog == -1) {

int err = errno;

printf("\n!!! FAILED to open /dev/watchdog, errno: %d, %s\n", err, strerror(err));

syslog(LOG_WARNING, "FAILED to open /dev/watchdog, errno: %d, %s", err, strerror(err));

}

每隔一段时间向 /dev/watchdog 设备写入数据(“定期喂狗”):

//feed the watchdog

if(fd_watchdog >= 0) {

static unsigned char food = 0;

ssize_t eaten = write(fd_watchdog, &food, 1);

if(eaten != 1) {

puts("\n!!! FAILED feeding watchdog");

syslog(LOG_WARNING, "FAILED feeding watchdog");

}

}

关闭 /dev/watchdog 设备,通常不需要这个步骤:

close(fd_watchdog);

所需头文件:

#include

#include

#include

#include

linux内核中断之看门狗

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

Linux编程之《看门狗进程》

Intro 当我们编写服务器代码时,为了让自己的服务器在意外崩溃时能够及时的重启,软件看门狗就显示出它的作用了,该看门狗进程是通过fork一个子进程(业务进程),父进程一旦捕获到了子进程的结束信号就重 ...

Linux 下安装服务器安全狗

1.网上下载服务器安全狗的软件包    32位和64位 wget http://www.safedog.cn/server_safedog_linux.html/safedog_linux32.tar ...

基于S3C2440的嵌入式Linux驱动——看门狗(watchdog)驱动解读

本文将介绍看门狗驱动的实现. 目标平台:TQ2440 CPU:s3c2440 内核版本:2.6.30 1. 看门狗概述 看门狗其实就是一个定时器,当该定时器溢出前必须对看门狗进行"喂狗“,如 ...

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

转自:http://blog.csdn.net/erickhuang1989/article/details/8721548 在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路. ...

Linux 软件看门狗 watchdog 喂狗

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

一个软件实现的Linux看门狗—soft_wdt

soft_wdt(下面简称本软件)是一个软件实现的Linux看门狗. 本软件是一款开源.免费软件. 下载地址: https://github.com/sunmingbao/soft-wdt/archi ...

shell 之 用linux定时任务crontab和watchdog.sh脚本做软件看门狗

1.简介 看门狗的作用是定期检测服务正常运行,如果发现服务不在了,会重新拉起服务:linux中可以利用系统的定时任务功能crontab定期的去执行watchdog.sh脚本,而watchdog.sh脚 ...

linux设备驱动归纳总结(十一):写个简单的看门狗驱动【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-112879.html linux设备驱动归纳总结(十一):写个简单的看门狗驱动 xxxxxxxxxxx ...

随机推荐

go:channel(未完)

注:1)以下的所有讨论建立在包含整形元素的通道类型之上,即 chan int 2)对于“

Haskell List相关操作

一.List中只能存放相同类型的元素. ++:将两个List合并成一个List.例,[1,2,3]++[4,5,6],结果是[1,2,3,4,5,6].  : :将“:”前面的元素添加到“:”后面的L ...

java开源时间/日期库Joda-Time

任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径.使用 JDK 完成这项任务将非常痛苦和繁琐.现在来看看 Joda Time,一 ...

iOS NSRuntime机制

什么是Objective-C runtime? 简单来说,Objective-C runtime是一个实现Objective-C语言的C库.对象可以用C语言中的结构体表示,而方法(methods)可以 ...

@Autowired内部实现原理

@Autowiredprivate CustomerDao customerDao;        public void addCustomer() {        customerDao.add ...

netty(二) 创建一个netty服务端和客户端

服务端 NettyServer package com.zw.netty.config; import com.zw.netty.channel.ServerInitializer;import io ...

jquery对象和javascript对象的console.log结果

array.push($("div").children("label")); console.log(array); 输出: 这个是jquery对象,如果在选 ...

Spring发送带附件邮件

下面是一个例子使用Spring通过Gmail SMTP服务器来发送电子邮件附件.为了包含附件的电子邮件,你必须使用 Spring的JavaMailSender及MimeMessage 来代替 Mail ...

NOI 模拟赛

T1 Article 给 $m$ 个好串,定义一个字符串分割方案是好的当且仅当它分割出来的子串中"是好串的子串"的串长占原串串长超过 85%,定义一个好的分割方案的权值为这种分割方 ...

JS封装继承函数

function extend(child,parent){ var F=function(){} F.prototype=parent.prototype; child.prototype=new ...

linux shell 看门狗,Linux 下如何使用看门狗相关推荐

  1. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

  2. Linux shell脚本,Linux下的西红柿时间管理法 I

    Linux shell脚本,Linux下的西红柿时间管理法 I 全部代码在[https://github.com/younggift/tomato.git]. 1. 西红柿时间管理法是什么 西红柿是一 ...

  3. linux shell 脚本 supress,Linux指令和shell脚本

    关于Shell 在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(命令解析器).它类似于DOS下的command.com和后来的cmd.exe. ...

  4. 视频教程-Linux shell脚本习题-Linux

    Linux shell脚本习题 阿铭,前腾讯运维工程师. 1.职业历程:先后就职于康盛.腾讯.好贷,从基础运维做到运维经理,从月薪3k到年薪40w+. 2.培训经历:11年为女友编写电子版linux入 ...

  5. Linux Shell CentOS 查看Linux 操作系统 相关信息

    文章目录 Linux Shell CentOS 查看Linux 操作系统 相关信息 相关阅读 1.代码 2.结果 Linux Shell CentOS 查看Linux 操作系统 相关信息 相关阅读 L ...

  6. linux shell rm 删除子目录下 所有.o后缀文件

    原理:通过管道命令来操作,先find出主目录 下想删除的文件,然后通过"xargs"这个构造参数列表并运行命令. 实例1:删除当前目录 包括当前目录的子目录下  所有 后缀是 o ...

  7. linux shell ls -l,linux之ls -l|grep ^-|wc -l命令 Shell 中常見的日志統計方法

    轉:http://www.cnblogs.com/senior-engineer/p/6203268.html Shell 中常見的日志統計方法 https://my.oschina.net/wate ...

  8. linux shell 豆瓣,用Linux shell脚本爬取豆瓣邮箱

    前两天总结一下邮箱格式的正则表达式,写了一个脚本来判断输入的邮箱地址是否符合邮箱的格式(有兴趣的朋友可以翻一下我的博客去看一下).在网上找资料的时候,发现基本都是用Python和Java来做爬虫,当然 ...

  9. linux shell变量的,linux shell变量解析

    摘要 腾兴网为您分享:linux shell变量解析,智影,智联招聘,智慧消防,音恋等软件知识,以及考拉fm电台,快快游戏,京东企业购app,pdf加密工具,高德导航3d版,电脑驱动,兰溪新闻,我爱网 ...

  10. linux shell tr命令,linux shell tr命令详解

    tr命令是linux下的一个命令,那么它的语法和用途是什么呢?下面由学习啦小编为大家整理了linux shell tr命令的相关知识,希望大家喜欢! linux shell tr命令 tr是trans ...

最新文章

  1. 鲍姆-韦尔奇算法 数学推导
  2. Js模块化开发的理解
  3. 计算机是的ch键他的功能是,从CH中文(中国)输入法转到智能ABC输入法.快捷键是哪个?...
  4. 20140524数据库课笔记
  5. 年增代码 12.9 亿行,每天完成需求近 4000 个,鹅厂程序员秘密大爆料!
  6. FFmpeg编写的代码
  7. MQTT服务器Mosquitto安装及使用
  8. 内存管理-基础知识框架和关键结构体(一)
  9. 如鹏网.Net基础1 随机数“骗局”揭秘
  10. 张益唐朗道-西格尔零点猜想报告:“部分地解决黎曼假设应该是对的”
  11. 调用JS函数的内部函数
  12. Idea修改主题,字体等常规操作
  13. Linux中的计划任务—Crontab调度一次性执行的任务at/batch
  14. 移动端 H5 开发指南 涉及html、css、js三大方向
  15. tp路由器桥接成功无法上网怎么办
  16. 极简权限认证必须掌握【代码+原理+建议收藏】
  17. linux mdadm命令详解
  18. matlab函数之reshape()
  19. Quectel EC600N-CN 中尺寸物联网首选LTE Cat 1模块[移远通信]
  20. 利用QT5.9创建并调用DLL(基于Visual Studio 2015)

热门文章

  1. 一个手机号可以注册绑定5个百度网盘,永久2T
  2. 安装黑群晖,打开群晖助手初始化失败问题,报错35(ESXI6.7虚拟机安装黑群辉最新版DSM6.2.1)
  3. matlab循环语句详解
  4. 兄弟连兄弟会培训高级管理人员
  5. 【Unity】UGUI系列教程——拼接一个简单界面
  6. 大数据 BigData
  7. 用python做模型_Python实现Kuramoto模型的思想前提
  8. http://bbs.3dmgame.com/forum.php,上古卷轴5:天际 任务MOD等心得大合集
  9. 计算机网络 自顶向下(5)链路层——学习笔记
  10. 类各种成员的访问权限 及 友员类和友员函数