问题标签 [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 投票
4 回答
29326 浏览

c# - 监视桌面应用程序的最佳方式是什么?

我需要一些方法来监视桌面应用程序并在它死机时重新启动它。

最初我认为最好的方法是从 Windows 服务监视/重新启动进程,直到我发现由于 Vista Windows 服务不应该与桌面交互

我已经看到了几个处理这个问题的问题,但我看到的每个答案都涉及某种被微软不鼓励的黑客行为,并且可能会在未来的操作系统更新中停止工作。

因此,Windows 服务可能不再是一种选择。我可能只是创建一个不同的桌面/控制台应用程序来执行此操作,但这违背了它的目的。

在您看来,哪种方式是实现这一目标的最优雅的方式?

编辑:这既不是恶意软件也不是病毒。需要监控的应用程序是将在嵌入式系统上运行的媒体播放器,即使我试图涵盖所有可能的崩溃场景,我也不能冒险让它因意外错误而崩溃(发生了) . 这个看门狗只是一个保障,以防万一其他一切都出错了。此外,由于播放器将显示第 3 方 Flash 内容,因此额外的优点是监控资源使用情况,并在某些糟糕的 Flash 电影开始泄漏内存时重新启动播放器。

编辑 2:我忘了提及,我想监控/重新启动的应用程序绝对不需要在 LocalSystem 帐户上运行,也不需要任何管理权限。实际上,我更希望它使用当前记录的用户凭据运行。

0 投票
1 回答
725 浏览

python - Python使用队列进行倒数看门狗定时器

我有一个产生 4 个线程的程序,这些线程需要无限期地保持运行,如果其中一个崩溃我需要知道以便我可以重新启动。

如果我使用一个包含 4 个数字的列表并通过使用队列将其传递给每个线程。然后每个线程所要做的就是在主线程倒计时时重置计时器中的部分。

所以队列永远不会是空的,只有一个值可以变为 0,然后如果发生这种情况,那么主线程知道它的子线程没有响应,它可以采取相应的行动。

但是每次我从队列中获取 .get() 时,它都会使其为空,所以我必须从队列中获取,存储到变量中,修改变量并将其放回队列中。

使用这样的队列作为看门狗可以吗?

0 投票
1 回答
666 浏览

c# - 管理观察者线程 - 引发的异常和加入如何工作?

我有一个来自我不拥有的 API 的登录过程,该过程偶尔会挂起。如果它花费的时间超过 30 秒,我想杀死它并重试(因为它应该只需要大约 2-3 秒)。

我对中止线程的工作原理以及是否需要在中止后加入感到有些困惑。这是我的问题,然后是我正在尝试做的示例:

问题:

  1. Abort 在其调用的线程中引发线程中止异常。这会传播吗?我需要在调用线程中显式处理它还是线程只是死了?

  2. 我是否需要加入一个中止的线程以使其不会僵化,或者我只是对 *NIX 编程世界感到困惑?

    /li>
0 投票
1 回答
14042 浏览

python - ImportError:安装看门狗后没有名为观察者的模块

在使用 pip:安装模块后,我尝试运行官方看门狗简单示例,但出现错误:watchdogpip install watchdog

有人可以帮帮我吗?

0 投票
2 回答
13821 浏览

python - 使用看门狗检测文件创建

我试图检测何时在目录中创建具有给定名称的文件。感谢watchdog。正确检测到创建,但是一旦检测完成,我不知道如何正确终止应用程序。

我的一段代码如下:

我是 python 新手,我不知道出了什么问题。检测似乎安排在专用线程中,并且 join() 方法正在等待该线程终止。因此,我想我没有在观察者上调用正确的方法来停止等待/循环,但是看门狗文档似乎真的不清楚指出可以使用哪些方法。

有人知道我如何实现我的目标吗?

0 投票
1 回答
4022 浏览

networking - em1: 看门狗超时 -- 重置 -- freebsd 8.3 / network down

我有一个重大问题,我找不到,也找不到头或尾。我已经用谷歌搜索了这个错误,但我没有找到任何相关的解决方案。

问题:

我有大约 8 台服务器,全部运行 freebsd 8.3 p3 / p4。这个文件服务器正在推动大约 300-400 mb/s。

这是第二次发生。网卡似乎死了。我有2个网卡,我可以通过专用网络访问服务器,一切正常,只是公共网络完全关闭。我试过重启网络接口:/etc/rc.d/netif restart && service routing restart | ifconfig em1 down && ifconfig em1 up,但没有成功。

如果我重新启动服务器,我只能恢复连接。

下面是 dmesg.boot 的输出,显示了网卡驱动程序信息。


我真的很想得到一些帮助来调试和修复这个问题,因为它通常发生在我睡觉的时候,在随机的日子里,它让我发疯。我爱我的睡眠。

0 投票
1 回答
772 浏览

python - Python Watchdog:为什么我的子进程被连续调用?

我是 Python 的新手,我正在尝试与我的家庭服务器同步自动同步。我发现了看门狗,我正在尝试使用它,但是每当我运行“touch test.txt”时,脚本就会不断启动新的统一进程。由于观察者使用的是从队列继承的类,我假设它应该在将第一个事件从队列顶部弹出后才阻塞。我在这里忽略了什么吗?

代码:

输出:

0 投票
0 回答
1625 浏览

php - PHP 脚本看门狗定时器

对于社区,我目前正在编写一个 PHP 脚本来使用标准块提供文件,如下所示:

我想做的是在 flush() 之后添加某种方法,例如 timerReset(); 然后在某种计时器循环中:

这样,如果远端停止接收数据包和/或无法跟上流,我将能够执行以下操作: a) 更改编码比特率。b) 停止脚本并清理/释放资源。

我知道 Apache / PHP 可以协商诸如 Keep-Alive 等标头,但我不知道如何准确地利用它们,和/或真正利用它们。
使用 AJAX 服务是不可取的。这里的目标是使用应用服务器通过互联网将媒体内容从文件服务器流式传输到移动设备。我也考虑过编写一个“应用程序”,但是跨平台编码(android/bb/iOS/W7M)以及我对 SmallTalk(ObjectiveC)的极其有限的知识会增加不必要的复杂性。

0 投票
1 回答
339 浏览

c++ - 后台程序接收大量控制台输入,而监视器程序在前台运行

我已经整理了一个小的 bash 脚本,它启动然后定期检查我的主程序是否正在运行(控制台应用程序,没有 gui)。我的主要应用程序应该是设备(嵌入式)系统的核心,它需要连续运行。

我的主程序包含一个 c++ select()(带计时器)循环,它监视几个 TCP、UDP 和 Unix 域套接字以及标准输入。

在前台运行时,myProgram 按预期运行。当没有人向它发送数据时,它只是坐在 select() 每 2 秒超时一次,摆弄计时器等,然后再次等待。任何以 ENTER 结尾的键盘活动都会被抓取和处理。控制台输入提出“在控制台收到 N 个字节”消息(现在!)

但是,当我的脚本在后台启动 myProgram 时,我会收到一个恒定的“在控制台收到的”字节流”消息,就好像标准输入正在关闭并重新打开,或者其他一些应用程序正在向我的应用程序发送 ENTER 流。

有人可以解释一下吗?

事实上,如果处于后台的状态导致 stdin 关闭/重新打开 ovr 及以上,那么 myProgram 是否有可能检测到它是后台的并与 stdin 断开连接?我是否也需要断开与 stdout 和 stderr 的连接?猜猜这会让我成为一个守护进程。

最后,看门狗程序是否是跟踪 myProgram 仍在运行的更好方法?看门狗可以重启程序而不是重启整个机器吗?

0 投票
1 回答
7855 浏览

embedded - 何时为嵌入式系统使用窗口看门狗

这个帖子不是问怎么用,而是什么时候用。

有很多关于窗口看门狗 (WW) 的文档,并且大多数微控制器已经包含它。每个供应商都表示 WW 是用于安全应用程序的,但没有人对此主题进行更多说明。

我想指出具体的例子,但这些例子可能比“汽车制动系统”多一点。

我们都知道,WW 必须既不早也不晚地喂食,但这种情况如何有助于提高安全性呢?

谢谢!!