I''ve attempted to configure mongrel to start as a service in RHEL. I''ve copied mongrel_cluster to /etc/init.d and "#/etc/init.d/mongrel_cluster start" does work. However when I attempt to start mongrel_cluster using "service mongrel_cluster start" I get the following error: service mongrel_cluster start /usr/bin/env: ruby: No such file or directory I am somewhat new to ruby. But could sure use some help. chkconfig --level 35 mongrel_cluster on # chkconfig --list mongrel_cluster mongrel_cluster 0:off 1:off 2:off 3:on 4:off 5:on 6:off -- Posted via http://www.ruby-forum.com/.
David Vrensk
2008-Sep-15 12:01 UTC
[Mongrel] "service mongrel_cluster start" startup fails
On Mon, Sep 15, 2008 at 4:44 AM, Steve Meyer <lists at ruby-forum.com> wrote:> I''ve attempted to configure mongrel to start as a service in RHEL. > I''ve copied mongrel_cluster to /etc/init.d and > "#/etc/init.d/mongrel_cluster start" does work. However when I attempt > to start mongrel_cluster using "service mongrel_cluster start" I get the > following error: > service mongrel_cluster start > /usr/bin/env: ruby: No such file or directory"service" gives a better picture of what will happen on boot since it sets up the environment as it would be for the init process that runs all the little start scripts. In this case, it looks like ruby is not in the default path. Read the man-page for ''service'' for a little more information and try creating a simple script in /etc/init.d that just prints out the environment variables, like this (untested): ---------------8<-------- #! /bin/sh env -------------8<--------- Make it executable and run it with "service name_of_script start" to see what it prints. It''s not the solution to your problem, but it''s a start. /David -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/mongrel-users/attachments/20080915/7032b03e/attachment.html>
David Vrensk wrote:> On Mon, Sep 15, 2008 at 4:44 AM, Steve Meyer <lists at ruby-forum.com> > wrote: > >> I''ve attempted to configure mongrel to start as a service in RHEL. >> I''ve copied mongrel_cluster to /etc/init.d and >> "#/etc/init.d/mongrel_cluster start" does work. However when I attempt >> to start mongrel_cluster using "service mongrel_cluster start" I get the >> following error: >> service mongrel_cluster start >> /usr/bin/env: ruby: No such file or directory > > > "service" gives a better picture of what will happen on boot since it > sets > up the environment as it would be for the init process that runs all the > little start scripts. In this case, it looks like ruby is not in the > default path. Read the man-page for ''service'' for a little more > information > and try creating a simple script in /etc/init.d that just prints out the > environment variables, like this (untested): > > ---------------8<-------- > #! /bin/sh > env > -------------8<--------- > > Make it executable and run it with "service name_of_script start" to see > what it prints. It''s not the solution to your problem, but it''s a > start. > > /DavidI did get past this but now the "service mongrel_cluster" fails with the following; (i''ve added the env command to the script) service mongrel_cluster start TERM=xterm PATH=/sbin:/usr/sbin:/bin:/usr/bin PWD=/ LANG=en_US.UTF-8 SHLVL=1 _=/bin/env /usr/bin/mongrel_cluster_ctl:9:in `require'': no such file to load -- rubygems (LoadError) from /usr/bin/mongrel_cluster_ctl:9 While /init.d/mongrel_cluster start works and the env info is; SHELL=/bin/bash TERM=xterm HISTSIZE=1000 USER=sfcapp LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin MAIL=/var/spool/mail/root PWD=/etc/init.d INPUTRC=/etc/inputrc LANG=en_US.UTF-8 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass HOME=/root SHLVL=2 LOGNAME=root CVS_RSH=ssh SSH_CONNECTION=9.65.247.187 3708 9.54.168.71 22 LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/env I have tried adding /usr/local/bin to the path; didn''t work -- Posted via http://www.ruby-forum.com/.
Steve Meyer wrote: If you have the mongrel_cluster working on a linux box; could you print out the result of the env command as you have it? -- Posted via http://www.ruby-forum.com/.
David Vrensk
2008-Dec-14 23:41 UTC
[Mongrel] "service mongrel_cluster start" startup fails
On Sat, Dec 13, 2008 at 04:30, Steve Meyer <lists at ruby-forum.com> wrote:> Steve Meyer wrote: > > > If you have the mongrel_cluster working on a linux box; could you print > out the result of the env command as you have it? >[root at blade init.d]# service envtest start TERM=xterm-color PATH=/sbin:/usr/sbin:/bin:/usr/bin PWD=/ LANG=en_US.UTF-8 SHLVL=1 _=/bin/env and, not unimportantly: [root at blade init.d]# which ruby /usr/bin/ruby /David -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/mongrel-users/attachments/20081215/1d0ded9e/attachment.html>
David Vrensk
2008-Dec-14 23:47 UTC
[Mongrel] "service mongrel_cluster start" startup fails
On Sat, Dec 13, 2008 at 04:27, Steve Meyer <lists at ruby-forum.com> wrote:> > I did get past this but now the "service mongrel_cluster" fails with the > following; (i''ve added the env command to the script) > service mongrel_cluster start > TERM=xterm > PATH=/sbin:/usr/sbin:/bin:/usr/bin > PWD=/ > LANG=en_US.UTF-8 > SHLVL=1 > _=/bin/env > /usr/bin/mongrel_cluster_ctl:9:in `require'': no such file to load -- > rubygems (LoadError) > from /usr/bin/mongrel_cluster_ctl:9 > > While /init.d/mongrel_cluster start works and the env info is; > SHELL=/bin/bash > TERM=xterm > HISTSIZE=1000 > USER=sfcapp > > PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin > [...] I have tried adding /usr/local/bin to the path; didn''t work >Let me be clear on this... did you add /usr/local/bin to the path in such a way that ''service mongrel_cluster start'' showed PATH=/usr/local/bin:..., but the cluster did still not start? Or do you mean that you didn''t succeed in adding /usr/local/bin to the path? Or something else? Seeing as three months have gone and we''re now in a different era, you could have a go at setting up apache with mod_rails instead. The time might be better spent there; I understand that mod_rails (Fusion passenger) is a nice experience. Good luck! /David -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/mongrel-users/attachments/20081215/4f1af7a4/attachment.html>
I did add /usr/local/bin to the path in the mongrel_cluster file and I still had issues; these were other ruby issues. What I ended up doing was creating a custom file to do the start and stop. That worked and I did have to add /usr/local/bin to the path. I''ve pasted in the file I created; I am sure there are issues with it. But it works... Thanks for your help the path suggestion was key to my getting this to work. #!/bin/sh ########################################################################### # chkconfig: - 85 35 # description: Mongrel Rails appserver # processname: mongrel_rails # config: /home/sfcapp/sfc/current/config/mongrel_cluster.yml # export PATH=$PATH:/usr/local/bin export SFCAPPHOME="/home/sfcapp/sfc" export CURRENT_DIR="$SFCAPPHOME/current/config" export MONGREL_RAILS="/usr/local/bin/mongrel_rails" echo $SFCAPPHOME $CURRENT_DIR $MONGREL_RAILS case "$1" in start) /usr/local/bin/mongrel_rails cluster::start -C /home/sfcapp/sfc/current/config/ mongrel_cluster.yml ;; stop) /usr/local/bin/mongrel_rails cluster::stop -C /home/sfcapp/sfc/current/config/m ongrel_cluster.yml ;; restart) /usr/local/bin/mongrel_rails cluster::stop -C /home/sfcapp/sfc/current/config/mongrel_cluster.yml /usr/local/bin/mongrel_rails cluster::start -C /home/sfcapp/sfc/current/config/mongrel_cluster.yml ;; *) echo "usage start | stop | restart" ;; esac -- Posted via http://www.ruby-forum.com/.
Chris Markle
2009-Jan-11 03:52 UTC
[Mongrel] "service mongrel_cluster start" startup fails
All,> /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 workA 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 order): /usr/lib/ruby/site_ruby/1.8 /usr/lib/ruby/site_ruby/1.8/i386-linux /usr/lib/ruby/site_ruby /usr/lib/site_ruby/1.8 /usr/lib/site_ruby/1.8/i386-linux /usr/lib/site_ruby /usr/lib/ruby/1.8 /usr/lib/ruby/1.8/i386-linux . 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: /etc/init.d /usr/lib/ruby/site_ruby/1.8 /usr/lib/ruby/site_ruby/1.8/i386-linux /usr/lib/ruby/site_ruby /usr/lib/site_ruby/1.8 /usr/lib/site_ruby/1.8/i386-linux /usr/lib/site_ruby /usr/lib/ruby/1.8 /usr/lib/ruby/1.8/i386-linux . 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 off... 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/.
Christopher Zimmermann
2009-Feb-19 23:49 UTC
[Mongrel] "service mongrel_cluster start" startup fails
Hi all, Im having the same problem as Steve Meyer was and still hope to find out what was wrong rather then writing a custom file as he ended up doing. I very much appreciate any insight you can provide! Same Problem: My rails application runs great, but it needs to be started manually. I need it to restart when the machine restarts. More explicitly, If I manually run> /etc/init.d/mongrel_cluster statusThen everything runs great. But if i run> service mongrel_cluster statusThen I get the error: /usr/bin/mongrel_cluster_ctl:9:in `require'': no such file to load -- rubygems (LoadError) That line in mongrel_cluster_ctl is just: require ''rubygems'' ***** What have I done to anger the gods?? Some details on my system - perhaps i installed something in wrong place? ruby: /usr/bin/ruby rubygems: /usr/local/rubygems ***** I am new to linux - can someone help me with that line "require ''rubygems''".. What does ''require'' mean in a shell script - i found no man page. What should it actually find, a file? I have the directory "/usr/local/rubygems" is that what it is looking for? Or should it find an actual file called ''rubygems'' somewhere? By the way, in the /etc/init.d/mongrel_cluster I did expand the path with: export PATH=/usr/local:/usr/local/bin:$PATH And that script then echos the path when run with service command as: /usr/local:/usr/local/bin:/sbin:/usr/sbin:/usr/bin ***** Thanks for reading! Topher -- Posted via http://www.ruby-forum.com/.