问题标签 [god]
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.
ruby-on-rails - 神配置文件监控现有进程?
我正在使用 God(Ruby gem)监控我的 redis 服务器。但是,我现有的服务器可能已经有一个 redis 实例。如何确保它监控已经启动的现有 Redis 服务器进程?
这是我的redis的上帝文件:
ruby - 上帝的问题
所以我在可靠地启动上帝时遇到了问题。在一切成功之前,我可能需要重新启动多次。
我有一个配置文件,我在其中指定监视两个进程,如下所示:
如果我用 -D 开始上帝,所以我在控制台中看到它总是可以正常工作并且我的进程开始了。
都好。然后我还可以运行以下内容:
所有作品。
现在,如果我在没有 -D 选项的情况下开始,它要么 (a) 正常工作,(b) 上帝启动进程,但它本身没有(或死亡),或者 (c) 什么都没有启动。
我一直在寻找某种日志条目,但没有找到任何表明存在故障的信息。同样正如我已经描述的那样,它确实有时会起作用。只是不是每次。
我看到的另一个问题(我现在不知道它是否相关)是当上帝和我的进程都运行良好(没有 -D)时,大多数时候无法成功向它发送命令. 即类似的东西
不会终止,只会产生很多点
同时我可以在顶部看到上帝开始占用大量 CPU。
我必须按 ctrl-c 然后用 -9 杀死上帝进程,然后手动清理受监视的进程。
我还没有在网上找到任何与我所描述的内容相近的东西。我非常想知道发生了什么。任何人都可以帮助或你有什么建议我可以尝试吗?
提前致谢!
更新:
杀死上帝进程会导致此堆栈跟踪:
在线搜索在 Ruby 中发现了这个错误。
gnu - Resque with God 使用 IO.popen
我在rvm下。
我有神。
它开始resque。
Resque 作业向本地系统程序打开一个IO.popen
,向其发送一些文本,从流中获取一些文本,对其进行一些分析,然后关闭 IO。
所以:当我运行 resque 时rake resque:work
——没关系,一切正常。
当我从用户的上帝运行开始 resque 时,它可以工作。
现在我已经让上帝从 init.d 开始工作,制作了 rvm 包装器,以 sudo 启动它......所以现在与它的通信以IO
某种方式中断了。Resque 失败的网络报告说
我还有其他一些 resque 工作,与IO
. 他们工作。
我用来打开IO
本地应用程序的 gem 是
https://github.com/JEG2/go_gtp/blob/master/lib/go/gtp.rb
=========
实验:
因此,所有 resque 工作人员都以 sudo 启动。好的。而工人指的是gnugo
。
monitoring - 如何(或应该)监控或确保监控软件的运行?
我正在编写一个系统/服务监控软件,我的主要目标是使其尽可能安全。
现在,我有一个启动主进程的二进制脚本,它派生出执行实际监控和报告的子进程。主人只在孩子失败时管理孩子的重启,以及孩子之间的一些沟通。
鉴于这种故障安全级别,是否建议为主进程添加另一层监控?
假设我的代码是高级语言(python 等),将我的软件包装在一个监视它的 initscript 或 shellscript 中是否有意义,或者它是否是多余的?
linux - 上帝:没有 sudo 无法启动
当我在没有 sudo 的情况下运行 God 时,God 无法找到事件系统。但是,当我使用 sudo God 运行时,能够找到事件系统。
关于我的 M/c .. 我正在使用“Linux 3.2.0-38-virtual #61-Ubuntu SMP Tue Feb 19 12:37:47 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux”
请帮我
ruby-on-rails - 上帝无法启动redis服务器。收到此错误:`/var/run/redis/redis-server.pid': Permission denied
我正在尝试使用上帝(红宝石宝石)监视redis服务器。我将 /etc/redis/redis.conf 中的 PID 文件路径更改为部署我的应用程序(使用 capistrano)的用户的 rails app temp 文件夹,并在 redis.god 文件中添加了行“w.pid_file = .. ." 它指向与我在 redis.conf 文件中更改的路径相同的 PID 路径。所以 redis.god 文件现在看起来是这样的:
所以我遇到的问题是上帝可以启动redis。我查看了它的日志以查找上帝文件,它显示以下内容:
为什么它仍在尝试查看 /var/run/redis/redis-server.pid?我将 redis.conf 文件中的 PID 路径更改为上面显示的新路径,因为我的权限被拒绝,但它仍然坚持查看 /var/run/redis/redis-server.pid。仅供参考,这是我改变PID路径的想法:上帝配置文件来监控现有进程?
ruby-on-rails-3 - 为什么上帝不能执行以`RAILS_ENV`开头的命令
我正在将一个项目部署到部署了多个应用程序的环境中。所以我使用 rvm 来分离每个 Rails 应用程序的运行环境。
在我的应用程序中,我使用 gemgod
来管理我的延迟作业流程,在我的上帝文件中,我有:
但为此,上帝报告:
如果我将其更改为:
有用。我想知道添加export
是否是在多应用程序环境中执行此操作的正确方法,因为在该服务器上,还有其他应用程序在其下运行RAILS_ENV=production
,它们会受到影响吗?
更新
我刚刚发现我错了,添加export
到开头,God
仍然抛出同样的错误,我怎么能做到这一点?
谢谢和最好的问候。
ruby - 试图理解GOD rb
我对 GOD 文档很少感到困惑
首先我的配置脚本看起来像这样
困惑1:GOD PID FILE DILEMMA
在 GOD 文档中提到
现在我很清楚我已经设置了pid_file和pid_file_directory但在我的配置中定义的那个目录中找不到 PID
仅供参考,启动 GOD 时sudo
假设目录可以被 GOD 写入
困惑2: START_IF CONDITION
现在,如何定义 start_if 条件现在我无法理解这个用例。还字条件什么条件来设置条件
- :process_running 是一组条件吗?如果是,start_if的其他条件是什么
还有do 块内的属性应该做什么?他们什么时候被处决?
更准确地说,我指的是 c.running = false (它在内部做什么以及 start_if上可用的其他属性列表)
混乱3(启动/停止/重启命令)
现在给定我的配置文件,其中写入了启动命令,现在是否还需要在配置中编写停止和重新启动命令
这样当运行以下
sudo 上帝停止混乱
sudo 上帝重新启动混乱
他们会被处决
假设我不写它们
如果运行它们会发生什么?
当执行停止命令即 sudo god restart mess` 时,GOD 最终会杀死正在运行的进程
sudo god stop mess' is executed? or restart the running process when restart command i.e
吗?
任何人都可以分享它的光
困惑4(是否守护进程):
根据 GOD 文档
现在考虑我通过进程明确地将 GOD 内部的背景放在类似
在这种情况下会发生什么
- 上帝会监视他们的停止和重新启动命令吗?
因此,假设 GOD 知道该进程已进入后台并且在针对 GOD 运行时对该进程上的所有命令启动/停止/重新启动命令做出反应,那么在 GOD 中(在启动命令中)守护进程可以被认为是一种有效的方法?
喜欢
sudo 上帝停止混乱
sudo 上帝重新启动混乱
任何人都可以对此有所了解吗
所以这里是从上面提取的问题列表
为什么 pid_file_directory 语法不起作用?
if :process_running 是一组条件start_if包含的其他条件还包含 c.running = false (内部执行)
是否有必要编写/定义
stop
并restart
在上帝配置中如果进程明确地移到后台,上帝仍然会监视它以获取诸如
stop|restart
等之类的命令
ruby - Is there a way to configure god to restart a watch every x amount of time?
I have a little script streaming data from Twitter and feeding it to another application. I am using for that the official twitter
gem in its 5.0.0.rc.1 release with the streaming feature being flagged as experimental, which is fine with me. It's not a critical application anyway.
In order to have it withstand unforeseen crashes and other networking problems and so, I have this script monitored by god
(0.13.3) and it works indeed most of the time. For some reason though it appears that occasionally the script will completely hang and sit idly while tweets should be received every odd second (debug setup is using widely used terms).
ps
lists it as Ss
, consuming 0% CPU and a mere 25MB of RAM.
I believe there might be some gotchas in the twitter
gem (or a dependency) and I do not have the leisure to dive into the code now and try to fix it.
This is the definition of my watch. As you can see, it's pretty much by the book. What I would like, is a condition that would allow me to forcefully restart the process every so often. That would is an acceptable workaround for my needs.
Perhaps something like
This is based off the :flapping
condition block sample on the project's homepage. Is there a way to achieve this or would I need to implement my own condition?