问题标签 [watchdog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1736 浏览

.net - Windows .Net 应用程序崩溃看门狗

我正在为展览装置创建一个小亭应用程序。我在 .Net 和 C# 中开发,计算机将运行 Windows 7。

现在,设置某种看门狗的最简单方法是什么,它将杀死进程并在它挂起时重新启动它。或者如果出现异常,是否会关闭错误窗口并重新启动应用程序?

谢谢!

0 投票
1 回答
13338 浏览

python - 用于 Windows 文件系统的 Watchdog Python 脚本

我想使用 python watchdog for windows 编写一个小的通知脚本。该脚本应该做 - 观察一个目录并在创建文件时 - 触发一个将文件名作为参数传递的 exe。

这说明对于 Windows,您需要“好运!!!” http://packages.python.org/watchdog/installation.html#installation-dependencies 这有多可靠或容易?任何人都用 Windows python 尝试过这样的东西..有什么建议吗? http://pypi.python.org/pypi/watchdog

0 投票
9 回答
90188 浏览

linux - 如何使用 Linux 软件看门狗?

谁能告诉我如何处理 Linux 中的软件看门狗?

我有一个SampleApplication连续运行的程序,如果它意外挂起或关闭,我需要重新启动它。

我在谷歌上搜索了一下,发现 Linux 有看门狗,/dev/watchdog但不知道如何使用它。有人可以帮我举个例子吗?

我的问题是在哪里指定我的应用程序名称和重新启动的延迟间隔?

0 投票
1 回答
1738 浏览

ios - 你可以在 iOS 中为调试模式启用看门狗吗?

我的一个应用程序被拒绝了,因为它超过了启动时间限制。看门狗进程杀死了它。有什么方法可以在调试模式下启用这个看门狗组件?我在某处读到它出于调试目的而被禁用(这对我来说似乎是合乎逻辑的)。只是想知道您是否可以通过某些设置或其他方式手动启用它。

顺便说一句,我知道如何解决这个问题,将整个启动代码移动到后台线程就可以了。

有人有想法吗?

0 投票
1 回答
2060 浏览

timeout - Xbee 停止寻找协调员?

我正在尝试在两个 Xbee 模块之间建立健康的通信。我已经成功了我想要的,但是有一个我无法弄清楚的问题。X-CTU 中有 2 个参数让我感到困惑。

JV - 渠道验证

NW - 网络看门狗超时

我已经阅读了数据表中的所有说明,我用谷歌搜索了很多次,但我找不到任何重要的解决方案。我的问题是什么?我正在研究一些“最坏的情况”。目前,对我来说最糟糕的情况是在协调器启动之后的 loooong looong 时间之前启动路由器。我通过设置 JV = 0 和 NW = 1 解决了这个问题。但是如果我设置 JV = 1,NW = 1,并且如果我在路由器之后长时间(例如半小时)启动协调器,路由器不会尝试找协调员。为什么会这样?我无法理解 Xbee 中发生了什么。

0 投票
4 回答
2030 浏览

python - 万无一失的跨平台进程kill daemon

我有一些 python 自动化,它产生了我用 linux命令telnet记录的会话;script每个记录会话都有两个script进程 ID(父进程和子进程)。

我需要解决一个问题,如果 python 自动化脚本死了,script会话永远不会自行关闭;出于某种原因,这比它应该的要困难得多。

到目前为止,我已经实现watchdog.py(见问题的底部),它自己守护进程,并在循环中轮询 python 自动化脚本的 PID。当它看到 python 自动化 PID 从服务器的进程表中消失时,它会尝试终止script会话。

我的问题是:

  • script会话总是产生两个单独的进程,其中一个script会话是另一个script会话的父级。
  • watchdog.py script如果我script从自动化脚本启动会话,则不会终止子会话(请参阅下面的自动化示例

自动化示例 ( reproduce_bug.py)

现在,当我运行上面的自动化时会发生什么......请注意,PID 30017 产生 30018 和 PID 30020 产生 30021。所有上述 PID 都是script会话。

在我运行上面的自动化之后,所有子script会话仍在运行。

我在 Debian Squeeze linux 系统 (uname -a: Linux Hotcoffee 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux) 上运行 Python 2.6.6 下的自动化。

问题:

守护进程似乎无法在产卵过程崩溃中幸存下来。如果自动化死机(如上例所示),我如何修复 watchdog.py 以关闭所有脚本会话?

说明问题的watchdog.py日志(遗憾的是,PID 与原始问题不一致)...

解析度

问题本质上是一个竞争条件。当我试图杀死“父”script进程时,它们已经死于自动化事件......

为了解决这个问题……首先,看门狗守护程序需要在轮询观察到的 PID 之前识别出要杀死的孩子的整个列表(我的原始脚本试图在观察到的 PID 崩溃后识别孩子)。接下来,我必须修改我的看门狗守护程序,以允许某些script进程可能因观察到的 PID 而死。


watchdog.py:

0 投票
1 回答
1203 浏览

c++ - 看门狗定时器

有什么方法可以编写类似于 WDT 的代码吗?如果您有任何建议或 src 代码非常感谢。我没有找到合适的解决方案。

我在网上得到的答案几乎是针对特定芯片组的。但我需要类似于 WDT 类型的实现。众所周知,WDT 是一个从某个初始值倒数到零的计数器。在达到最小值之前,程序必须响应,否则会触发中断。

我不知道我的代码是否正常工作!我想使用的语言是 C/C++。

0 投票
1 回答
4368 浏览

python - 看门狗(osx)未通知远程网络更改

我正在使用看门狗来监视网络目录,非递归的,以便随着时间的推移创建特定的文件模式。我看到的问题是,虽然我在本地测试时效果很好,但如果我从远程机器更改受监控的目录,则不会触发事件。

以下是我的配置的具体细节:

  • 操作系统
  • 在 NFS 挂载上监视单个目录,非递归
  • 蟒蛇2.6

使用股票示例片段可以轻松复制我的问题示例:

如果您在网络目录上启动它,然后从同一系统进行更改,则会调度事件。但是,如果您随后从网络上的另一台计算机更改目录,则不会调度任何事件。

我是否遗漏了有关 kqueue 限制的某些内容(或者可能是 OSX 上的 FSEvents,因为它说它首先是 Watchdog 的首选)?

我对这个 python 包很感兴趣,并打算开始将它用于其他脚本来替换文件系统轮询,但我似乎找不到任何关于我为什么看到这个问题的信息。

更新

我还测试了MacFSEvents并遇到了同样的问题。然后我修改了上面的测试脚本,强制尝试不同的观察者:

所以至少现在,我可以使用投票观察者,而不必修改我的代码,直到有人可以阐明我遇到的真正问题。

0 投票
2 回答
8212 浏览

vb.net - 如何以编程方式检查应用程序是否在 VB.NET 中挂起

我需要编写一个监控/看门狗程序来检查一系列应用程序

监控程序应该能够

  1. 确定它正在监视的应用程序是否挂起或没有响应
  2. 如果挂起,请重新启动特定应用程序

VB.NET 中的哪种 API 可以帮助我实现这一目标?

任何代码示例都会非常有帮助

0 投票
2 回答
47952 浏览

linux - 关于 Linux NMI 看门狗

现在遇到一个关于Linux NMI Watchdog 的问题。我想使用 Linux NMI 看门狗来检测和恢复操作系统挂起。因此,我将“nmi_watchdog=1”添加到 grub.cfg 中。然后检查/proc/interrupt,NMI 每秒被触发。但是在我加载一个带有死锁的模块(双重获取自旋锁)后,系统完全挂起,没有任何反应(永远不要恐慌!)。看起来 NMI 看门狗不起作用!

然后我阅读了 Documentation/nmi_watchdog.txt,上面写着:

请注意,使用本地 APIC 时,它生成的 NMI 中断频率取决于系统负载。缺少更好的源的本地 APIC NMI 看门狗使用“ cycle unhalted ”事件。

什么是“循环未停止”事件?

它补充说:

但是,如果您的系统锁定除“hlt”处理器指令之外的任何内容,则看门狗将很快触发,因为每个时钟滴答都会发生“循环未停止”事件......如果它锁定在“hlt”上,那么你就出局了幸运的是——事件根本不会发生,看门狗也不会触发。

如果处理器执行“hlt”指令,似乎看门狗不会触发,然后我在“ Intel 64 and IA-32 Architectures Software Developer's Manual, Volumn 2A ”中搜索“hlt”,它的描述如下:

停止指令执行并将处理器置于 HALT 状态。启用的中断(包括 NMI 和 SMI)、调试异常、BINIT# 信号、INIT# 信号或 RESET# 信号将恢复 执行。

然后我就迷路了……

我的问题是:

  • Linux NMI 看门狗如何工作?
  • 触发了 NMI?

我的操作系统是 Ubuntu 10.04 LTS,Linux-2.6.32.21,CPU Pentium 4 Dual-core 3.20 GHz。

我没有阅读有关 NMI 看门狗的完整源代码(没有时间),如果我无法理解 NMI 看门狗是如何工作的,我想使用性能监控计数器中断处理器间中断(由 APIC 提供)来发送 NMI NMI 看门狗。