[Mongrel] "service mongrel_cluster start" startup fails
lists at ruby-forum.com
Sat Jan 10 22:52:00 EST 2009
> /usr/bin/mongrel_cluster_ctl:9:in `require': no such file to load --
> [...] I have tried adding /usr/local/bin to the path; didn't work
A similar thing happened to me when I was testing a Ruby-based startup
(/etc/init.d) script and was getting failures on my "load" command
(similar symptoms to David's failure on "require".
I looked at the failure using strace and noticed that the final library
lookup for say xxx.rb would be ./xxx.rb. This made me wonder what the
current working directory was and it seems that scripts started with
/sbin/service are started in the directory "/". So unless your loaded or
required script is in "/" it will fail. Here is what the contents of var
$: look like on my machine that seem to confirm this (this is the load
Notice that "." (current dir is the last one). I tried adding
/etc/init.d (where my other scripts were for startup) using:
$:.unshift("/etc/init.d") to dynamically change the search order and
ended up with this, which worked:
Now I can keep the whole thing Ruby-based without having to change the
/sbin/service code or resort to bash startup scripts to kick things
The section entitled "Where Ruby Finds Its Modules" in the Programming
Ruby book (http://www.ruby-doc.org/docs/ProgrammingRuby/) was helpful to
me in understanding this.
Hope this helps the next victim.
Posted via http://www.ruby-forum.com/.
More information about the Mongrel-users