Articles of 看门狗

Linux在崩溃时自动重启应用程序 – 守护进程

我有一个运行embedded式Linux的系统,它是连续运行的关键。 基本上,这是一个与传感器进行通信并将数据转发到数据库和Web客户端的过程。 如果发生崩溃,我该如何自动重新启动应用程序? 此外,有几个线程正在进行轮询(例如套接字和uart通信)。 我如何确保没有线程挂起或意外退出? 有一个易于使用的线程友好的看门狗?

Linux软件看门狗

我正在为Linux编写一个系统监视器,并希望包含一些看门狗function。 在内核中,即使closures了/ dev / watchdog,也可以configuration看门狗。 换句话说,如果我的守护进程正常退出并closures了/ dev / watchdog,则系统在59秒后仍会重新启动。 这对于用户而言可能是或者可能不是期望的行为。 我需要让我的守护进程知道这个设置,因为它会影响我如何处理SIGINT。 如果这个设置是打开的,我的守护进程需要(最好)在退出时启动一个有序closures,或者(至less)警告用户系统很快就会重启。 有谁知道从用户空间获取此设置的方法? 我没有看到sysconf()中的任何东西来获取值。 同样,我需要能够判断软件看门狗是否启用。 编辑: Linux提供了一个非常简单的看门狗接口。 一个进程可以打开/ dev / watchdog,一旦打开设备,内核将开始60秒的倒计时重新启动,除非有一些数据被写入该文件,在这种情况下,时钟重新设置。 根据configuration内核的方式,closures该文件可能会或可能不会停止倒计时。 从文档: 如果设备/ dev / watchdog被正确closures,看门狗可以停止而不会导致重新启动,除非您的内核是在启用了CONFIG_WATCHDOG_NOWAYOUT选项的情况下编译的。 我需要能够判断CONFIG_WATCHDOG_NOWAYOUT是否在用户空间守护进程中设置,这样我就可以以不同的方式处理closures所有守护进程。 换句话说,如果这个设置很高,一个简单的: # /etc/init.d/mydaemon stop …将在59秒内重新启动系统,因为没有任何信息正在写入/ dev / watchdog。 所以,如果它的设置很高,我的SIGINT处理程序需要做额外的事情(即警告用户至less)。 我无法find从用户空间获取此设置的方式:(任何帮助表示赞赏。

如何在linuxembedded式中更改看门狗定时器

我必须使用Linux看门狗驱动程序(/ dev / watchdog)。 它很好,我写这样一个字符: echo 1 > /dev/watchdog 看门狗启动后约1分钟,系统重启。 问题是,我怎样才能改变超时? 我必须改变驱动程序的时间间隔?

谁在Linux中刷新硬件看门狗?

我有一个运行2.6内核的处理器AT91SAM9G20。 看门狗在引导级别启用并configuration为16秒。 看门狗模式寄存器只能configuration一次。 当代码在bootstrap,bootloader或kernel中挂起时,电路板将重新启动。 但是一旦内核出现即使看门狗在任何应用程序中都没有刷新,板子在16秒后也没有被复位,而是15分钟。 谁在清醒看门狗? 在我们的例子中,看门狗应该受到应用程序的影响,所以如果我们的应用程序挂起,这个板子可以重置。 这些是运行过程: 1 root init 2 root [kthreadd] 3 root [ksoftirqd/0] 4 root [watchdog/0] 5 root [events/0] 6 root [khelper] 63 root [kblockd/0] 72 root [ksuspend_usbd] 78 root [khubd] 85 root [kmmcd] 107 root [pdflush] 108 root [pdflush] 109 root [kswapd0] 110 root [aio/0] 740 root [mtdblockd] 828 root […]

如何使用linux软件看门狗

您好可以告诉我如何处理Linux中的软件看门狗。我有一个程序“SampleApplication”连续运行,我需要重新启动它,如果它挂起或意外closures。 我googling这一点,发现Linux有看门狗在/ dev /看门狗,但不知道如何使用它。有人可以帮助我的例子。 我的问题是我在哪里指定我的应用程序名称和延迟间隔重新启动。 由于我是linux新手,如果可能的话,请简单介绍一下示例。 谢谢