Ruby 守护进程 - 啥是监视器,它是如何工作的?
Posted
技术标签:
【中文标题】Ruby 守护进程 - 啥是监视器,它是如何工作的?【英文标题】:Ruby daemons - what is a monitor and how does it work?Ruby 守护进程 - 什么是监视器,它是如何工作的? 【发布时间】:2011-07-04 18:06:40 【问题描述】:因此,Ruby 的守护进程 gem 允许您在启动进程时设置 monitor=true
。显示器到底是什么,你用它做什么?您所做的只是指定true
或false
...这是在某处创建日志文件吗?实际监控过程的东西,比如god
?为什么有关这东西的文档如此可怕?
或者这实际上是每个人都应该知道的 Unix 东西? :)
【问题讨论】:
【参考方案1】:来自fine manual:
:monitor:监控程序并重启崩溃的实例。
看起来它设置了一个 PID 文件(即保存守护进程 ID 的文件)来跟踪守护进程;如果守护进程由于某种原因崩溃,监视器将重新启动它。
您将不得不询问作者为什么他们的文档如此稀疏;源代码看起来很清楚,但对于正在发生的事情的要点。我认为任何构建了一两个守护程序的人都会熟悉监视和重新启动它们的概念。
【讨论】:
啊,所以看起来它有一些辅助进程不断运行并检查 PID 是否仍然存在。如果没有,它(辅助进程)启动守护进程备份。谢谢! @Rob Cameron:是的,差不多。这种事情在后台任务中相当普遍,OSX 的 launchd (en.wikipedia.org/wiki/Launchd) 有类似的“监控和重启”逻辑。以上是关于Ruby 守护进程 - 啥是监视器,它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章
Linux上安装服务器监视工具,名为Scout_Realtime。
写一个linux下写个关于c语言的双守护进程,就是监视一个进程,当其死掉,马上将其重启