Unfortunately using the "ENV=production" at the start of the command
line is causing /bin/sh to be invoked.
The best way to solve this is to actually use:
actor.env = { 'ENV' => 'production' }
actor.start = "ruby #{app_root}/run/servers.rb"
which will use god to set the environment variables and won't trigger
the extra process to be started.
actor.dir = "/..."
is also helpful in preventing the need for a "cd" at the start of your
command line as well.
On Mar 25, 11:24 am, Philippe Creux <[email protected]> wrote:
> Hey guys,
>
> I'm using God to monitor a process that doesn't daemonized. When I
> start it and 'ps -aux | grep ..' it I get the following:
>
> [philippe.cr...@versa current]$ ps aux | grep servers
> root 22969 0.1 0.1 65956 1148 ? Ss 10:35 0:00 sh -
> c ENV=production ruby /opt/actors/current/run/servers.rb
> root 22970 24.7 6.3 175956 66276 ? Sl 10:35 0:04
> ruby /opt/actors/current/run/servers.rb
> 241698919 22986 0.0 0.0 61184 720 pts/0 R+ 10:35 0:00
> grep servers
>
> Ok, so God double fork the command is run with PID 22970. Its parent
> is just the run command with PID 22969.
>
> However, if I display the PID stored:
> [philippe.cr...@versa current]$ cat /var/run/god/actor.pid
> 22969
>
> I get the parent PID. So when doing god stop actor, the parent si
> killed but not the actual process.
>
> Here is my god config:
>
> app_root = '/opt/actors/current'
>
> God.watch do |actor|
> actor.name = 'actor'
> actor.interval = 30.seconds
> actor.start = "ENV=production ruby #{app_root}/run/servers.rb"
> actor.start_grace = 5.seconds
> actor.restart_grace = 5.seconds
> end
>
> Thanks for your help!
>
> Cheers,
>
> Philippe
--
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.