首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux下的应用程序健康监测

Linux下的应用程序健康监测
EN

Stack Overflow用户
提问于 2018-08-20 12:26:02
回答 1查看 1.4K关注 0票数 1

Systemd将创建一个进程&在启动时依次创建许多其他应用程序/进程,这些应用程序/进程需要在我的嵌入式设备上运行。

  1. 有没有办法在所有的应用程序中添加一段代码,使systemd可以交换心跳&知道某个应用程序是否挂起?
  2. 有什么我可以参考和理解的例子吗?
EN

回答 1

Stack Overflow用户

发布于 2018-08-20 12:54:30

答案是看这个超级用户的帖子

是的;但是在修改systemd之前首先修复您的but程序, MariusMatutiae是非常正确的。你的程序有问题。它死定了。摆弄系统不是解决问题的办法。充其量,这只是分散注意力。修正你的程序,使它不被破坏。把你的精力集中在正确的事情上。 尽管如此,其他人来这里是因为问题的标题,而不是问题本身。为了他们的利益,以下是标题的答案,忽略了这个问题: 是的,systemd可以监视démon,并在他们停止交谈时自动重新启动他们。不过,不是所有的老德蒙斯。正如mvp所指出的,我们不可能知道有一个d mon(至少在这个宇宙中,停止问题是无法判定的)。无论是systemd还是任何其他计算机程序,都不可能从零开始推断向它们抛出的随机程序已经陷入僵局,或陷入无限循环,或诸如此类。您将得到的最佳结果是检测d mon没有在所需的时间范围内执行常规的“心跳”操作。 因此,利用systemd的看门功能的d mons必须编写,才能说出一个特定于系统的协议,即sd_notify协议。这使d mon代码变得复杂了一点。这更复杂,因为如果编写正确,那么应该检查它们是否在启用了监督狗函数的情况下被调用。 一个使用此协议来利用systemd的看门能力…的d mon

  • …必须检查WATCHDOG_USEC环境变量;
  • …必须在其整个生命周期内,以大约通知() _USEC/2的间隔间隔("USEC“表示微秒),连续频繁地调用WATCHDOG=1选项集;
  • …必须在其单元文件中设置Type=notify
  • …应该在其单元文件中设置NotifyAccess=main (或=all);
  • …必须在其单元文件中设置WatchdogSec=seconds
  • …必须链接到libsystemd-daemon.所以如果您想知道编码的细节,在阅读手册之后,请确保找到正确的StackExchange。我是SuperUser。StackOverflow是在那边

再读

  • 伦纳特·诗人。2011-04-12。看门狗。Freedesktop.org。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51930741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档