Start background process under bash

Bob McGowan Robert.McGowan@veritas.com
Tue Jan 25 12:09:00 GMT 2000


Joe,

First, I'm adding the cygwin list back in the CC field.  This is
"normal" for discussion, so others can add or modify (and correct ;-)
suggestions, etc.

You mention using the DOS box "start /b" to get a process running in the
bash background.  Since the start command is part of the CMD.EXE and not
of bash, I'm not sure I understand what you are doing.  For a background
process in bash, you would run:

	bash-02$ command args... &
	bash-02$

which has always worked for me.  The ampersand tells bash to start the
command but not wait for it to exit.

Using start in a cmd prompt sort of emulates UNIX background processes,
but I believe the process structure of windows results in a brand new,
unrelated to the original, set.  (I am not an expert on this, though. 
Perhaps others could provide a more precise explanation.)  Suffice it to
say, I can do the following:

	bash-02$ cmd /c "start bash"

and get a brand new window with a bash command prompt, where the new
bash process (in cygwin/unix terms) is its own parent.  Normally, a
background process will have a parent PID equal to the process that
started it.  If I add the /b option to the start command in the above
example,  I get 2 bash shells competing for the single input focus.  A
ps -f in a separate shell still shows that the bash running via the
start command is its own parent (so not a "true" background process) and
is not manageable using the bash 'jobs' command or the '%#' background
jobs referencing features.

I hope this helps point you in a useful direction.

Bob

Joe Burpee wrote:
> 
> Bob McGowan wrote:
> > You didn't mention whether you are using the beta or CD version.
> 
> I'm using B20.1 (beta); sounds like I should get the CD.
> 
> > I am using the Cygwin CD 1.0, no updates, on both NT4 and NT2K and can
> > run processes in the background inside a scripts using the & without any
> > error popups (in fact, I am running a script now - actually puts a
> > function in the background, which is done by running multiple copies of
> > bash).  You may want to try "standard" method again (in case you haven't
> > yet).
> 
> I think my client's NT4 setup must be snafu.  Using the DOS box command
> "start /b" I can get one process running in the bash background, but
> only one.  And other processes, like readline, seem to be dead while the
> background job is running.  I guess there's a process priority problem
> somewhere.
> 
> Thanks for the info.  Some reason for optimism.
> 
> Joe

-- 
Bob McGowan
Staff Software Quality Engineer
VERITAS Software
rmcgowan@veritas.com

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list