[Mongrel] mongrel_cluster, start on boot, stale pids
Eden Li
eden at mojiti.com
Wed Mar 5 13:07:55 EST 2008
I use mongrel_rails cluster::* instead of mongrel_cluster_ctl, however
it looks like you're using an older version of mongrel_cluster. You
might try upgrading to 1.0.5.
On Mar 5, 2008, at 9:45 AM, Jonathan Rochkind wrote:
> Actually, I have investigated further, and am pretty sure I am
> duplicating the problem condition properly.
>
> mongrel_cluster_ctl start --clean doesn't seem to work properly, it's
> throwing that error. Hmm.
>
> I am guessing that the script I find in the mongrel_cluster gem at
> resources/mongrel_cluster, which is reccommended on that wiki
> page... is
> not actually what you all are using. And perhaps shouldn't be
> included
> in the distro anymore? What are others using to ensure mongrel
> clusters start at boot?
>
> Jonathan
>
> Jonathan Rochkind wrote:
>> Thanks that's helpful, I'm investigating that.
>>
>> Using the instructions at:
>>
>> http://mongrel.rubyforge.org/wiki/MongrelCluster#OnBootInitializationSetup
>>
>> I had a little bash script at /etc/init.d/mongrel_cluster that was
>> copied from
>> /path/to/mongrel_cluster_gem/resources/mongrel_cluster
>>
>> That bash script calls mongrel_cluster_ctl with various options. I
>> have added a "--clean" option to the "start" condition. Would it
>> make sense to suggest this be added to resources/mongrel_cluster in
>> the actual gem, to not require this change?
>>
>> However, now I'm trying to set up an intentionally created stale
>> pid, to test this feature. I am invoking mongrel_cluster_ctl
>> manually (but in the manner of the resources/mongrel_cluster
>> script) with the --clean option. I get this:
>>
>> ****
>> /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>> mongrel_cluster/init.rb:83:in `unlink': No such file or directory -
>> tmp/pids/mongrel.3000.pid (Errno::ENOENT)
>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>> mongrel_cluster/init.rb:83:in `start'
>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>> mongrel_cluster/init.rb:79:in `each'
>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>> mongrel_cluster/init.rb:79:in `start'
>> from /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.2/lib/
>> mongrel_cluster/init.rb:232:in `run'
>> from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.4/bin/../lib/
>> mongrel/command.rb:212:in `run'
>> from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.4/bin/
>> mongrel_rails:281
>> from /usr/bin/mongrel_rails:18:in `load'
>> from /usr/bin/mongrel_rails:18
>> mongrel_rails cluster::start returned an error.
>> *****
>>
>> That was using a mongrel_config.yml file that did have 'cwd' set.
>> There certainly is a tmp/pids/mongrel.3000.pid off of the 'cwd'
>> location. But perhaps the 'unlink' isn't being executed off the
>> 'cwd' location as it ought to be?
>>
>> Is this a bug in mongrel_cluster_ctl --clean, or perhaps just a bug
>> in my attempt to duplicate the problem condition and make sure I've
>> solved it?
>>
>> Thanks for any help.
>>
>> Jonathan
>>
>>
>>
>> Eden Li wrote:
>>
>>> Newer versions of mongrel_cluster have a --clean option which will
>>> remove stale pids if it finds them. Provide that option to
>>> mongrel_rails cluster::* in your scripts.
>>>
>>> On Mar 5, 2008, at 8:59 AM, Jonathan Rochkind wrote:
>>>
>>>
>>>
>>>> So I am using the instructions here to have mongrel_cluster start
>>>> my
>>>> various mongrel-deployed apps on server boot.
>>>> http://mongrel.rubyforge.org/wiki/MongrelCluster
>>>>
>>>> There is a problem mentioned here:
>>>> http://www.ruby-forum.com/topic/105849
>>>>
>>>> In summary---if the server (or the mongrel processes) die
>>>> ungracefully
>>>> leaving their pids behind, then on next boot, mongrel_cluster won't
>>>> succesfully start them up, choking on the leftover pids.
>>>>
>>>> What is the reccommended solution to this? I'd like to have my
>>>> mongrels
>>>> automatically start on boot, in a way that forces them to start
>>>> even
>>>> if
>>>> there are stale pids. Thanks for any advice!
>>>>
>>>> [ PS: I just discovered this problem the hard way, when my server
>>>> unexpetedly lost power, and my production apps failed to start up
>>>> on
>>>> the
>>>> next boot! Very unpleasant. ]
>>>>
>>>> Jonathan
>>>>
>>>>
>>>> --
>>>> Jonathan Rochkind
>>>> Digital Services Software Engineer
>>>> The Sheridan Libraries
>>>> Johns Hopkins University
>>>> 410.516.8886
>>>> rochkind (at) jhu.edu
>>>>
>>>> _______________________________________________
>>>> Mongrel-users mailing list
>>>> Mongrel-users at rubyforge.org
>>>> http://rubyforge.org/mailman/listinfo/mongrel-users
>>>>
>>>>
>>> _______________________________________________
>>> Mongrel-users mailing list
>>> Mongrel-users at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/mongrel-users
>>>
>>>
>>
>>
>
> --
> Jonathan Rochkind
> Digital Services Software Engineer
> The Sheridan Libraries
> Johns Hopkins University
> 410.516.8886
> rochkind (at) jhu.edu
>
> _______________________________________________
> Mongrel-users mailing list
> Mongrel-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mongrel-users
More information about the Mongrel-users
mailing list