[Backgroundrb-devel] strange problem with system call

hemant gethemant at gmail.com
Mon Aug 21 17:00:06 EDT 2006


Thanks guys,

I dont have any "&" in my code.But yes, popen solution sounds better.
I will give it a spin.



On 8/21/06, Ezra Zygmuntowicz <ezmobius at gmail.com> wrote:
>
>
>         Yeah Charles has the right idea. One other way to do what you want
> would be to kill the process directly by running
>
> pid = `ps axww | grep -v grep | grep typo`  # or whatever the process
> is called?
>
> then get the pid out of that text and do a kill -9 on it. But I think
> you are probably better off with a popen solution. I am going to be
> redoing the start scripts to use the daemons gem which might fix this
> problem.
>
> -Ezra
>
> On Aug 21, 2006, at 8:29 AM, Charles Brian Quinn wrote:
>
> > Many times those calls to start/stop scripts get backgrounded, so it
> > could actually be returning instantly.  You could try wrapping it, or
> > go check what typo stop is actually doing and make sure there's no
> > "blah blah &" in the script.
> >
> > You could also try using popen and popen3 processes instead of the
> > `command` backticks.  I find those hard to debug as you don't know
> > what's going on when they run.
> >
> > This will allow you to see stdin, stderr, and stdout on the
> > process.  Sample:
> >
> > cmd_to_run = "typo stop"
> >
> >        stdin, stdout, stderr = Open3.popen3(cmd_to_run)
> >
> >        s_stderr = stderr.read.to_s
> >        s_stdout = stdout.read.to_s
> >
> >        # if you'd like to see it
> >        logger.info "stdout: #{s_stdout}"
> >        logger.info "stderr: #{s_stderr}"
> >
> >        if s_stderr.empty? && s_stdout.starts_with?("error stuff here")
> >          return true
> >        else
> >          errors.add_to_base("error msg here")
> >          return false
> >        end
> >
> > hope that helps!
> >
> > On 8/21/06, hemant <gethemant at gmail.com> wrote:
> >> Hi,
> >>
> >> I am using backgroundrb to create a automated system of typo
> >> blogs.So, users
> >> can create new typo applications using web interface and all that
> >> jazz.
> >>
> >> Now..its working perfectly except one minor glitch. Since latest
> >> version of
> >> typo has a command called "typo", i simply use that command to
> >> install new
> >> typo app.And it works.
> >>
> >> def do_work(args)
> >>     DIR = "/home/foobar/public_html"
> >>     username = args
> >>     blog_name = username + "_blog"
> >>      # creation part works flawlessly so lets skip that.
> >>     # there is a problem while stopping it.
> >>     if (Dir.chdir(DIR)) == 0
> >>           current_dir = `pwd`
> >>           @logger.debug("Current directory is #{current_dir}")
> >>           stop_command = "typo stop "+ blog_name
> >>           debug_stuff = `#{stop_command}`
> >>                                               #line no 33
> >>           @logger.debug("### #{debug_stuff}")
> >>     else
> >>       @logger.debug("### Error changing directory")
> >>     end
> >> end
> >> Now let me assure that, args has correct username, because
> >> starting of
> >> blog,migrating from sqlite to mysql works perfectly using this worker
> >> thread.The only glitch is, in line # 33, "typo stop " doesn't
> >> work.I have
> >> tried system also.system returns true, so typo should be
> >> stopped.But when i
> >> do "ps aux|grep foobar" , it isn't ,process is still there.
> >>
> >> When i tried `command`. All i got in debug_stuff variable is a empty
> >> string.However, when i try same stuff from irb, it works as
> >> expected and
> >> typo stopped.Now..again let me assure that, the worker thread IS
> >> getting
> >> CALLED.
> >>
> >> I have tried various stuff.But since, I am simply not able to
> >> debug, where
> >> the heck problem is, I am lost. I was told that, system or
> >> `command` both
> >> wait for the command to finish execution to resume normal
> >> execution.But for
> >> me it SEEMS that the call to "typo stop #{blog_name}" returns
> >> immediately.
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Backgroundrb-devel mailing list
> >> Backgroundrb-devel at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/backgroundrb-devel
> >>
> >>
> >
> >
> > --
> > Charles Brian Quinn
> > self-promotion: www.seebq.com
> > highgroove studios: www.highgroove.com
> > slingshot hosting: www.slingshothosting.com
> > _______________________________________________
> > Backgroundrb-devel mailing list
> > Backgroundrb-devel at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/backgroundrb-devel
>
>


-- 
nothing much to talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/backgroundrb-devel/attachments/20060822/bff59dbb/attachment.html 


More information about the Backgroundrb-devel mailing list