The process you're trying to start is the "service" command, which exits as
soon as the real daemon starts, so God doesn't have a job to do. If you
want to monitor something started by service, you'll need to add w.pid_file
to point to the same place that your daemon pid file is written to watch
that pid. I haven't tried it, but it should JustWork.

On Thu, Sep 6, 2012 at 3:24 AM, rubybox <[email protected]> wrote:

>
> Hi everyone im trying to make both elasticsearch and prosody be monitored
> with God both fail to start.
> Resuting in
>
> I [2012-09-06 09:22:18]  INFO: Loading elasticsearch.god
> I [2012-09-06 09:22:18]  INFO: Syslog enabled.
> I [2012-09-06 09:22:18]  INFO: Using pid file directory: /var/run/god
> I [2012-09-06 09:22:18]  INFO: Started on drbunix:///tmp/god.17165.sock
> I [2012-09-06 09:22:18]  INFO: elasticsearch move 'unmonitored' to 'init'
> I [2012-09-06 09:22:18]  INFO: elasticsearch moved 'unmonitored' to 'init'
> I [2012-09-06 09:22:18]  INFO: elasticsearch [trigger] process is not
> running (ProcessRunning)
> I [2012-09-06 09:22:18]  INFO: elasticsearch move 'init' to 'start'
> I [2012-09-06 09:22:18]  INFO: elasticsearch start: service elasticsearch
> start
> I [2012-09-06 09:22:28]  INFO: elasticsearch moved 'init' to 'start'
> I [2012-09-06 09:22:28]  INFO: elasticsearch [ok] process is not running
> (ProcessRunning)
> I [2012-09-06 09:22:28]  INFO: elasticsearch [ok] tries within bounds
> [1/5] (Tries)
> ETC
>
>
> This is my prosody.god.rb file the rails root env is just path to my rails
> app wich is included in my app but could be easily removed.
> What am I missing here that it won't start?
>
> God.watch do |w|
>
>   w.name = "prosody"
>   w.interval = 30.seconds
>   w.start = "service prosody start"
>   w.stop = "service prosody stop"
>   w.restart = "#{w.stop} && #{w.start}"
>   w.start_grace = 10.seconds
>   w.restart_grace = 10.seconds
>   # w.log = File.join(ENV['RAILS_ROOT'], 'log', 'cumulus.log')
>
>   # determine the state on startup
>   w.transition(:init, {true => :up, false => :start}) do |on|
>     on.condition(:process_running) do |c|
>       c.running = true
>     end
>   end
>
>   # determine when process has finished starting
>   w.transition([:start, :restart], :up) do |on|
>     on.condition(:process_running) do |c|
>       c.running = true
>       c.interval = 5.seconds
>     end
>
>     # failsafe
>     on.condition(:tries) do |c|
>       c.times = 5
>       c.transition = :start
>       c.interval = 5.seconds
>     end
>   end
>
>   # start if process is not running
>   w.transition(:up, :start) do |on|
>     on.condition(:process_running) do |c|
>       c.running = false
>     end
>   end
>
> end
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "god.rb" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/god-rb/-/SkEHYGzfoBIJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/god-rb?hl=en.
>



-- 
chris -at- microcozm -dot- net
== If you wish to make an apple pie from scratch, you must first invent the
universe. - Carl Sagan
=== My crypto keys: http://www.microcozm.net/~ccosby/keys/

-- 
You received this message because you are subscribed to the Google Groups 
"god.rb" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/god-rb?hl=en.

Reply via email to