问题标签 [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.

0 投票
0 回答
411 浏览

ruby-on-rails - Capistrano 部署,上帝开始显示错误

我用过 Rails 4

如果服务器崩溃,我正在使用 gem 'god' 重新启动 sidekiq。

但是在通过 capistrano 部署后出现错误。

我尝试过不同的命令。

所有命令都显示相同的错误。

我怎样才能让它运行?

请给一些建议。

谢谢

0 投票
1 回答
2660 浏览

ruby-on-rails - 未初始化的常量 Redis (NameError)

我有一个与上帝一起监控的 RoR 应用程序。我可以毫无问题地启动独角兽服务器

一切正常。虽然当我尝试像这样使用上帝启动服务器时

我得到一个uninitialized constatnt (NameError)异常,以下输出被写入我的日志文件。

非常感谢任何帮助。谢谢!

更新:

redis宝石已安装:

0 投票
1 回答
605 浏览

ruby-on-rails - 在服务器启动时启动上帝进程(Ubuntu)

我目前正在努力执行一个简单的命令,当我以 root 或非 root 用户身份登录时手动运行它时我知道该命令有效:

我正在尝试在服务器启动时运行它(我正在运行 Ubuntu 12.04),并且我已经研究将它添加到/etc/rc.local只是为了查看它是否运行。我知道我可以将它添加到/etc/init.d然后使用 update-rc.d 但据我了解它基本上是同一件事。

我的问题是在一切都尽可能干净地启动后我如何运行这个命令而没有任何模糊。

我可能在一切初始化的生命周期中遗漏了一些东西,但我很乐意鼓励一些教育!有没有其他方法或地方可以放置这个命令?

谢谢!

0 投票
1 回答
2383 浏览

ruby-on-rails - 重新启动 resque 工作人员的优雅方式

是否有一种优雅的方式来重新启动 resque 工作人员(例如在部署之类的事件之后),其中正在处理队列中的某些作业的工作人员不会立即被 SIGTERM 或 SIGKILL 之类的信号杀死,而是应该等待工作人员完成它正在做的任务并在工人空闲时杀死它。

我正在使用上帝来监控 resque 工作人员,我浏览了God 主页,但无法找到任何相关信息,但看到它只是监控流程的宝石,我认为它没有优雅的方式去做这个。

另外,我希望在部署时自动重启工作器,我已经查看了这两种方法(http://simonecarletti.com/blog/2011/02/how-to-restart-god-when-you-deploy-a -new-release/http://balazs.kutilovi.cz/2011/12/04/deploying-resque-scheduler-with-capistrano/)。如果有更好的方法,那将很有帮助。

0 投票
2 回答
1065 浏览

ruby - 上帝和环境变量:如何管理凭据?

我想用上帝监控一个 ruby​​ 脚本并将 AWS 凭证作为环境变量传递,推荐的方法是什么?

我目前的做法:

我想将带有源代码的神配置文件提交到 github,因此我无法在神配置文件中将凭据设置为纯文本。我试图将它们设置为系统环境变量:

我在 God conf 文件中设置了用户和组,以便进程以该特定用户身份启动,我将 access_key 和 api_secret 设置为该用户的环境变量。

当我以该用户身份登录并回显环境变量时,它们设置正确。上帝是由暴发户开始的。

当上帝启动脚本时,它在环境变量中找不到凭据,我不明白为什么?

这是我的conf文件:

脚本神.rb

/home/deploy/.bashrc

/home/deploy/.bash_profile

当我放ENV['AWS_ACCESS_KEY_ID']andENV['AWS_SECRET_ACCESS_KEY']时,它们没有设置。我究竟做错了什么 ?

0 投票
2 回答
3546 浏览

ruby-on-rails - God not running:服务器不可用(或您无权访问它)

我正试图让上帝启动我的 resque 队列。然而,当我运行god load config/resque.god它返回The server is not available (or you do not have permissions to access it)

这是我的 resque.god 文件:

0 投票
1 回答
107 浏览

ruby - 上帝 - 进程退出的自定义代码

当上帝重新启动进程时,是否可以执行自定义代码。请参阅下面的示例,了解我的意思。当 watch 从 :up 转换到 :start (进程重新启动)时,我们希望在 :error 级别向 syslog 发送日志。applog是 God 模块中定义的方法。

目前,加载手表配置时,我在 syslog 中看到消息。在某个转换时,我还能如何在 syslog 中记录错误?

0 投票
1 回答
325 浏览

ruby - 红宝石神入门

当按照关于上帝的本教程进行操作时,我运行命令god -c path/to/simple.god -D,而不是按照描述的那样获取输出,而是得到以下奇怪的输出。

我不知道为什么它不起作用。

我刚跑god --version,输出是

似乎是一些GNU god。我重新安装了 god( sudo gem install god),但在运行时仍然得到上述输出god --version。任何解决方法?

以防万一:使用 Mac OS X。

0 投票
1 回答
474 浏览

ruby - 在启动时加载上帝脚本 - 需要全局宝石?

我使用上帝来监视我的 Ruby API 和服务。我创建了初始化脚本来在服务器启动时启动这些服务。这样做让我提出了几个问题。

首先,我必须让脚本以 root 身份运行?我发现当它加载 init.d 脚本时,进程将由 root 管理 - 需要 Sudo 进行任何更改。

其次,我为一些工作出色的主要流程(例如瘦)创建了 RVM 包装器。但是发现我使用的一些 gem,例如 Mongo gem 不会从捆绑器的上下文中加载(我认为这是由于脚本的加载方式以及它是作为 root 加载的?)所以我是被迫做一个宝石安装蒙戈(和bson)

有没有办法让 init.d 加载的脚本在捆绑器的上下文中加载?

我可能完全错了,因为我对 Ruby 部署和 Linux 配置还很陌生。

这是我的上帝脚本的示例:

和我的初始化脚本:

0 投票
2 回答
402 浏览

ruby - 上帝监控:进程退出后延迟启动

我正在与上帝一起监视一个红宝石程序。当 ruby​​ 程序退出时,我想等待 10 秒,直到它再次启动。当我使用grace时,进程退出后,进程立即重新启动,但是上帝等待10秒的宽限期,直到它查看进程。现在当进程在宽限期结束之前被杀死时,上帝不会再次拿起它,并且该进程永远不会重新启动。

我希望上帝等待 10 秒钟,直到退出后运行启动命令。我该怎么做?

我在手表上试过transitionon :process_exits,但我很难找到一种方法来将等待时间设置在正确的位置。

编辑:在查看了上帝的来源之后,我怀疑一个可能的解决方案是添加一个在其before_start方法中等待的自定义行为。这听起来合理吗?(见下文)(完)


更多细节:

当我使用 a 中的grace功能时watch,我会得到以下行为:

在这里我杀死了这个过程。

宽限期开始了。此时该过程已经开始。但是,神表会等待宽限期,直到查看进程。

下一个日志行发生在上面最后一个日志行之后 10 秒(宽限期):


编辑:

自定义行为:

使用 .god 配置中的行为: