[Backgroundrb-devel] Capistrano Hanging on Deployment

Philip Lipu Tsai tsailipu at gmail.com
Fri Mar 16 13:04:27 EDT 2007


Typo -- clarifying here for future newcomers, though experienced eyes
probably caught this already:

That command that I put inside init.d was: "RAILS_ENV=production nohup
/[path to my app]/current/script/backgroudrb/start -d"  (one doesn't really
put "/etc/init.d/[script name] -d" inside the script itself. ;)

On 3/16/07, Philip Lipu Tsai <tsailipu at gmail.com> wrote:
>
> Hello Ben,
>
> Erza and you are on Gentoo -- so I thought Erza's script would work on
> Gentoo.  Looks like your try didn't work there, either(?)  Because I am on
> Centos, based on RedHat, I thought there may be some minor differences (the
> only difference being the depend section that I don't know how to
> translate.. well, unless I spend more time looking into it.).  So I tried
> putting nohup as such: "RAILS_ENV=production nohup /etc/init.d/backgroundrbd
> start -d" and it worked.  Though it worked, this combination of nohup inside
> init.d looked a bit unusual (btw, I don't know if setting this RAILS_ENV
> this way is still necessary for 0.2.x -- it's a weird artifact/bug), so I
> am curious to see whether Erza or anyone here knows what's up.  There must
> be quite some number of people using backgroundrb and quite some serious
> about deployment and use capistrano....  So, I hope that we get to discover
> something more here.  ;)
>
> On 3/16/07, Ben Reubenstein <benr at x-cr.com> wrote:
> >
> > Hi Philip ~
> >
> > I am having this issue too and have been meaning to post.  I am using
> > the init script on Gentoo, and it works perfectly if I am in the machine but
> > when running from capistrano it will report a successful start/stop but the
> > process is nowhere to be found.  I have to login to the machine and start it
> > manually.  I am running on the latest version so I don't think it is a
> > backgroundrb version issue.
> >
> > ~ Ben
> >
> > On 3/15/07, Philip Lipu Tsai < tsailipu at gmail.com> wrote:
> > >
> > > Erza,
> > >
> > > I am on Centos and bash, Rails 1.2.2, Ruby 1.8.4, BackgrounDrb old
> > > version (the 0.1.x version right before 0.2...  Is the depend()
> > > section peculiar only to Gentoo?  If not, anything one needs to do for this?
> > >
> > >
> > > I wrote a script just similar to this (w/o paying attention to the
> > > depend() section) and have capistrano before_restart task invoke the
> > > "/etc/init.d/backgroundrbd restart" (which is just stop and then start).
> > > However, this problem of backgroundrb's exiting after cap task's successful
> > > completion occurs (yes, no hanging in cap's process, but backgroundrb quits
> > > even though it is started in -d mode; the pid log file is there, but the
> > > process is no longer).  Prepending with "nohup" in start seems to work, but
> > > I thought by using init.d style, one needn't worry about the nohup
> > > problem, either.  Any insight?  (Or is this a 0.1.x problem?)
> > >
> > > Thanks,
> > > Philip
> > >
> > > On 3/12/07, Ezra Zygmuntowicz <ezmobius at gmail.com> wrote:
> > > >
> > > >
> > > >         Yeah there are some weird interactions between capistrano
> > > > and some
> > > > daemons, the old version of backgroundrb exibits this behavior. That
> > > > way I get around it is by creating an init.d script, then letting
> > > > capuse that to restart bdrb. Works like a charm. Here is an init.d
> > > > script for Gentoo systems, it should be easy to adapt to any other
> > > > unixy system.:
> > > >
> > > > #!/sbin/runscript
> > > > # Copyright 1999-2004 Gentoo Foundation
> > > > # Distributed under the terms of the GNU General Public License v2
> > > > # $Header:
> > > > /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx-r1,v
> > > > 1.1 2006/07/04 16:58:38 voxus Exp $
> > > >
> > > >
> > > > depend() {
> > > >          need net
> > > >          use dns
> > > >          after gfs
> > > > }
> > > > start() {
> > > >          ebegin "Starting bdrb2"
> > > >            RAILS_ENV=demo /data/toolbox/current/script/backgroundrb/
> > > >
> > > > start -d
> > > >          eend $? "Failed to start bdrb2"
> > > > }
> > > >
> > > > stop() {
> > > >          ebegin "Stopping bdrb2"
> > > >               kill -9 `cat /data/toolbox/current/log/
> > > > backgroundrb.pid` 2>/dev/null; true
> > > >          eend $? "Failed to stop bdrb2"
> > > > }
> > > >
> > > >
> > > >
> > > > Cheers-
> > > > -Ezra
> > > >
> > > >
> > > > On Mar 12, 2007, at 10:47 AM, Ben Reubenstein wrote:
> > > >
> > > > > Hello ~
> > > > >
> > > > > I am using the Capistrano recipe outlined in this post to restart
> > > > > my backgroundrb server:
> > > > >
> > > > > http://rubyforge.org/pipermail/backgroundrb-devel/2007-February/
> > > > > 000718.html
> > > > >
> > > > > My Version:
> > > > > ~~~~~~~~~~~~
> > > > > task :before_restart, :roles => :app do
> > > > >    restart_backgroundrb
> > > > > end
> > > > >
> > > > > task :start_backgroundrb, :roles => :app do
> > > > >    sudo "nohup /var/www/rails/#{application}/current/script/
> > > > > backgroundrb/start "
> > > > > end
> > > > >
> > > > > task :stop_backgroundrb, :roles => :app do
> > > > >    sudo "kill -9 `cat /var/www/rails/#{application}/current/log/
> > > > > backgroundrb.pid` 2>/dev/null; true"
> > > > > end
> > > > >
> > > > > task :restart_backgroundrb, :roles => :app do
> > > > >    stop_backgroundrb
> > > > >    start_backgroundrb
> > > > > end
> > > > > ~~~~~~~~~~~~
> > > > >
> > > > > The backgroundrb server is stopped and started but hangs at the
> > > > > start_backgroundrb task.  Capistrano shows:
> > > > >
> > > > >   * executing task start_backgroundrb
> > > > >   * executing "sudo  nohup /var/www/rails/*************/current/
> > > > > script/backgroundrb/start"
> > > > >     servers: ["host"]
> > > > >     [host] executing command
> > > > >  ** [out :: host] nohup: ignoring input and appending output to
> > > > > `nohup.out'
> > > > >
> > > > > It will hang there and not restart the main web app process.  I
> > > > > updated my gems to see if this was a version issue, but am
> > > > > experiencing the same problem.  I also tried running this
> > > > > task :after_restart, the web app is successfully restarted, but it
> > > > > still hangs.
> > > > >
> > > > > Thanks in advance for any ideas on how to fix this.
> > > > >
> > > > > ~ Ben
> > > > >
> > > > > --
> > > > > Ben Reubenstein
> > > > > 303-947-0446
> > > > > http://www.benr75.com
> > > > > _______________________________________________
> > > > > Backgroundrb-devel mailing list
> > > > > Backgroundrb-devel at rubyforge.org
> > > > > http://rubyforge.org/mailman/listinfo/backgroundrb-devel
> > > >
> > > > -- Ezra Zygmuntowicz
> > > > -- Lead Rails Evangelist
> > > > -- ez at engineyard.com
> > > > -- Engine Yard, Serious Rails Hosting
> > > > -- (866) 518-YARD (9273)
> > > >
> > > >
> > > > _______________________________________________
> > > > Backgroundrb-devel mailing list
> > > > Backgroundrb-devel at rubyforge.org
> > > > http://rubyforge.org/mailman/listinfo/backgroundrb-devel
> > > >
> > >
> > >
> > > _______________________________________________
> > > Backgroundrb-devel mailing list
> > > Backgroundrb-devel at rubyforge.org
> > > http://rubyforge.org/mailman/listinfo/backgroundrb-devel
> > >
> >
> >
> >
> > --
> > Ben Reubenstein
> > 303-947-0446
> > http://www.benr75.com
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/backgroundrb-devel/attachments/20070316/80718471/attachment.html 


More information about the Backgroundrb-devel mailing list