3

这可能是一个相当新手的修复,所以提前道歉。

我有一个简单的过程,我想用上帝来控制。这个阶段的过程基本上是刚刚好loop do; sleep 1; end。配置文件是最低限度的:

God.watch do |w|
  w.name = "punter"
  w.start = "bundle exec rails runner ./script/fetcher_daemon.rb"
  w.keepalive
end

该过程不断开始,pid文件不断重置。就像上帝可以开始一切正常然后不承认该过程正在运行并重新启动它。请参阅下面的日志文件:

我可以从命令行运行bundle exec rails runner ./script/fetcher_daemon.rb并且运行良好。

我的设置是 Mint Linux,我使用 rvm。

I [2012-08-23 19:33:42]  INFO: Loading ./script/punter.god
I [2012-08-23 19:33:42]  INFO: Syslog enabled.
I [2012-08-23 19:33:42]  INFO: Using pid file directory: /home/matt/.god/pids
I [2012-08-23 19:33:42]  INFO: Started on drbunix:///tmp/god.17165.sock
I [2012-08-23 19:33:42]  INFO: punter move 'unmonitored' to 'up'
D [2012-08-23 19:33:42] DEBUG: driver schedule #<God::Conditions::ProcessRunning:0x917d7d0> in 0 seconds
I [2012-08-23 19:33:42]  INFO: punter moved 'unmonitored' to 'up'
I [2012-08-23 19:33:42]  INFO: punter [trigger] process is not running (ProcessRunning)
D [2012-08-23 19:33:42] DEBUG: punter ProcessRunning [true] {true=>:start}
I [2012-08-23 19:33:42]  INFO: punter move 'up' to 'start'
I [2012-08-23 19:33:42]  INFO: punter start: bundle exec rails runner ./script/fetcher_daemon.rb
D [2012-08-23 19:33:42] DEBUG: driver schedule #<God::Conditions::ProcessRunning:0x917d7d0> in 0 seconds
I [2012-08-23 19:33:42]  INFO: punter moved 'up' to 'up'
I [2012-08-23 19:33:42]  INFO: punter [ok] process is running (ProcessRunning)
D [2012-08-23 19:33:42] DEBUG: punter ProcessRunning [false] {true=>:start}
D [2012-08-23 19:33:42] DEBUG: driver schedule #<God::Conditions::ProcessRunning:0x917d7d0> in 5 seconds
I [2012-08-23 19:33:47]  INFO: punter [trigger] process is not running (ProcessRunning)
D [2012-08-23 19:33:47] DEBUG: punter ProcessRunning [true] {true=>:start}
I [2012-08-23 19:33:47]  INFO: punter move 'up' to 'start'
I [2012-08-23 19:33:47]  INFO: punter start: bundle exec rails runner ./script/fetcher_daemon.rb
D [2012-08-23 19:33:48] DEBUG: driver schedule #<God::Conditions::ProcessRunning:0x917d7d0> in 0 seconds
I [2012-08-23 19:33:48]  INFO: punter moved 'up' to 'up'
I [2012-08-23 19:33:48]  INFO: punter [ok] process is running (ProcessRunning)
D [2012-08-23 19:33:48] DEBUG: punter ProcessRunning [false] {true=>:start}
D [2012-08-23 19:33:48] DEBUG: driver schedule #<God::Conditions::ProcessRunning:0x917d7d0> in 5 seconds
4

1 回答 1

1

您需要在 God 文件中使用绝对路径。所以这里

God.watch do |w|
  w.name = "punter"
  w.start = "bundle exec rails runner /home/matt/code/punter/script/fetcher_daemon.rb" # <- abs path
  w.keepalive
end
于 2012-08-24T08:30:47.843 回答