- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我对另一个有关 Windows 服务看门狗计时器的问题的答案非常感兴趣(请参阅 here)。该答案指出:
I have also used an internal watchdog system running in another thread. That thread looks at the main thread for activity like log output or a toggling event. If the activity is not seen then the service is considered hung and I shutdown the service.
In this case you can configure windows to auto-restart a stopped service and that might clear the problem (as long as it's not an internal logic bug).
Also services I work with have text logs that are written to a log. In addition for services that are about to "sleep for a bit", I log the time for the next wake up. I use MTAIL to watch a log for output."
任何人都可以提供一些示例代码如何使用在另一个线程中运行的内部看门狗,因为我目前的任务是开发一个 Windows 服务,该服务将能够在失败、挂起等情况下自行重启。
非常感谢您的帮助。
最佳答案
我不太喜欢在您正在观察的进程中将看门狗作为线程运行。这意味着如果整个过程由于某种原因挂起,看门狗将无法工作。
看门狗是从硬件世界中提炼出来的一个想法,他们是对的。使用尽可能简单的外部电路(因此可以证明它是正确的)。典型的看门狗只是简单地运行一个计时器,如果进程在计时器到期之前没有做任何事情(比如访问看门狗正在监视的内存位置),整个过程就会被重置。当看门狗被“踢”时,它会重新启动定时器。
进程踢看门狗的行为保护该进程免于立即终止。
我的建议是编写一个非常简单的独立程序,它只监视一个事件(例如文件更新时间被修改)。如果该事件未在要求的时间内发生,则终止正在监视的进程(并让 Windows 重新启动它)。
然后让您观看的程序定期重写该文件。
关于windows - 如何编写看门狗定时器以重新启动 Windows 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1463689/
ATtiny88初体验(四):看门狗 ATtiny88单片机的看门狗使用内部独立的128KHz时钟源,拥有3种工作模式: Interrupt模式:超时产生中断; Syste
1、前言 假设现在有一个应用场景,需要对文件系统进行监控,发生变化时产生日志,对新增的文件做一些相应的操作。 比如说应用到我们之前的音乐高潮提取器:若当前文件夹下增加了一个音乐文件,监控器就调
我正在尝试编写一个程序,该程序可以检测是否已插入或拔出了耳机,并因此执行了某些操作。我使用的是Ubuntu 14.04,经过一番搜索,我发现耳机/耳机的连接状态已写入此路径下的编解码器文件-/ pro
我是 Python 的新手,我正在尝试实现良好的“文件创建”检测。如果我不放置 time.sleep(x),我的文件将以错误的方式详细说明,因为它们仍在文件夹中“创建”。 (缓冲区不为空)我如何在每次
Linux 上是否有用于以下目的的看门狗工具或库?我想构建一个看门狗可执行文件,它启动 2 个进程并在以下情况下重新启动它们: 进程崩溃 进程变得无响应(例如由于某种原因挂起) 互联网搜索找到了 wa
我正在尝试从 C 向 Raspbian 中的看门狗设备 - /dev/watchdog 提供数据。 问题是无论我如何尝试访问设备总是抛出忙碌或权限被拒绝的错误(因为进程已经在运行并由系统提供.....
嗨,我正在考虑使用 Python 在 Windows XP 上制作一个看门狗应用程序,它将执行以下操作: 在给定时间重新启动 Windows。 启动一个 exe 应用程序。 运行计时器以检查:应用程序
我打算使用 Python 看门狗来处理写入文件的目录,我只对图像文件感兴趣,麻烦的是我不太理解 this page 上的代码.这是我的尝试: from watchdog.observers impor
我正在使用 Watchdog监视网络目录,非递归的,随着时间的推移要创建的特定文件模式。我看到的问题是,虽然它在本地测试时效果很好,但如果我从远程计算机更改受监控的目录,则不会触发事件。 这里是我配置
Watchdog 非常棒,可以让您对特定目录进行递归快照。它甚至可以让您使用名为 DirectorySnapshotDiff 的函数比较快照. 我的程序会实时观察目录的变化,因此需要使用此函数的输出。
我在 threaded 进程环境中长时间运行 boost::regex_match(...) 调用时遇到问题。但它可能是另一个具有相同问题的库(API 调用)。 有没有通用的方法来设置看门狗? 对于非
我正在 Raspberry Pi 上开发一个系统,该系统使用 Web 界面与之交互,并具有自定义 C++ 服务器。这个想法是,您只需插入 Pi,不需要手动启动服务器。虽然这不是问题,但服务器有时会出现
我正在尝试实现一个看门狗,它将 ping 主机,如果它已启动,那么它将让 midori 打开远程页面,如果没有,那么它将打开本地页面。 我已根据此处的代码进行了改编:https://raspberry
我有一个无限期运行的实时数据采集器,每隔几秒通过 HTTP 采集数据并将其放入 MySQL 数据库中。 在我的程序中,我有一个 while True 循环,每当最后生成的时间大于 X 秒时,它就会生成
之前我是在Windows系统上开发OpenCl内核,现在我用的是Linux。在 Windows 上,有一个名为 watchdog 的巧妙功能,如果它持续超过 5 秒(默认情况下),它会自动停止 Ope
我正在使用 Watchdog 来监控目录并使其与 Dropbox 保持同步。 我遇到这样一种情况,每次我从 Dropbox 下载文件时,我都会触发一个上传事件,因为我需要写入 Watchdog 正在监
现在我遇到一个关于 Linux NMI Watchdog 的问题。我想使用 Linux NMI 看门狗来检测和恢复操作系统挂起。因此,我将“nmi_watchdog=1”添加到 grub.cfg 中。
我已经在 Ubuntu 10.04 上使用 Apache2 完成了 Phusion Passenger 设置。每当我重新启动 Apache 服务器时,我都会收到以下错误消息,并且 Rails 应用程序
我有一个运行 Debian 的 Beaglebone Black,我需要一个在后台运行的脚本,它会每隔几秒检查一次系统是否仍在运行。据我了解,BBB 中的看门狗是基于硬件的,独立于操作系统运行,因此即
我正在尝试使用 passenger 和 nginx 运行 rails。 Nginx 不会重定向到我的 Rails 应用程序,而是继续到其默认的 index.html 页面,我得到了这个错误: Unab
我是一名优秀的程序员,十分优秀!