【发布时间】:2013-08-28 10:50:12
【问题描述】:
我对 GOD 文档很少感到困惑
首先我的配置脚本是这样的
DIRECTORY = "/Users/joshianiket22/myProject/god_script"
God.pid_file_directory = DIRECTORY
God.watch do |w|
w.name = "mess"
w.start = "ruby /Users/joshianiket22/myProject/god_script/simple.rb"
w.pid_file = File.join(DIRECTORY,'simple.pid')
puts File.join(DIRECTORY,'simple.pid')
w.stop = "ruby -e 'puts \"#{DateTime.now}\"'"
w.log = File.join(DIRECTORY,'god.log')
w.behavior(:clean_pid_file)
w.interval = 10.seconds
w.start_if do |start|
start.condition(:process_running) do |c|
puts "Inside start condition"
c.interval = 5.seconds
c.running = false
end
end
end
困惑1:GOD PID FILE DILEMMA
在上帝的文档中提到了
现在我已经清楚我已经设置了 pid_file 和 pid_file_directory 但是在我的配置中定义的那个目录中找不到 PID
仅供参考,以sudo 启动 GOD,因此假设目录可由 GOD 写入
困惑 2: START_IF CONDITION
现在,现在如何定义 start_if 条件,我无法理解它的用例。 还字条件什么条件设置条件
- :process_running 是一组条件吗?如果是,其他组是什么 start_if 的条件
-
do 块 中的属性还有什么作用?他们什么时候被处决?
更准确地说,我指的是 c.running = false(它在内部做什么以及在 start_if 上可用的其他属性列表)
混乱3(启动/停止/重启命令)
现在给定我的配置文件,其中写入了 start 命令,现在是否还需要在配置中编写停止和重新启动命令
这样当运行下面的时候
sudo 上帝停止混乱
sudo 神重启一团糟
他们会被处决
假设我不写它们
如果运行它们会发生什么?
执行停止命令即
sudo god stop mess' is executed? or restart the running process when restart command i.esudo god restart mess`时GOD最终会杀死正在运行的进程吗?
有人可以分享一下吗
困惑4(是否要守护进程):
根据 GOD 文档
现在考虑一下我明确地将进程放在 GOD 内部的背景中,例如
w.start = "ruby /Users/joshianiket22/myProject/god_script/simple.rb &"
在这种情况下会发生什么
- GOD 会监视他们的停止和重启命令吗?
因此,假设 GOD 知道进程已进入后台,那么在 GOD 中(在 start 命令中)守护进程可能是一种有效的方法 当针对上帝运行时,它会对该进程上的所有命令启动/停止/重启命令做出反应吗?
喜欢
sudo 上帝停止混乱
sudo 神重启一团糟
谁也可以解释一下这个问题
所以这里是从上面提取的问题列表
为什么 pid_file_directory 语法不起作用?
if :process_running 是一组条件,其他条件做什么 start_if 还包含 c.running = false(内部执行)
神配置中是否需要写/定义
stop和restart如果进程显式移至后台,上帝仍会监视它以获取诸如
stop|restart等命令
【问题讨论】:
标签: ruby god process-monitoring