This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin/1.3.20-1 bash child process disassociation behavior weirdness


>  Resent-To: Richard dot Broberg at mail dot inficon dot com
>  Resent-From: rhb at inficon dot com
>  Mailing-List: contact cygwin-help at cygwin dot com; run by ezmlm
>  Sender: cygwin-owner at cygwin dot com
>  Mail-Followup-To: cygwin at cygwin dot com
>  X-Injected-Via-Gmane: http://gmane.org/
>  From: Thorsten Kampe <thorsten at thorstenkampe dot de>
>  Date: Tue, 11 Mar 2003 23:43:23 +0100
[snip]
>  
>  * Francis Litterio (03-03-11 21:03 +0100)
>  > Max Bowsher wrote:
>  >> Richard H. Broberg wrote:
>  >>> In the meantime I'll
>  >>> happily use rxvt in place of bash, since it does what I need.
>  >>
>  >> You are confused.
>  >>
>  >> rxvt is a terminal.
>  >> bash is a shell.
>  > 
>  > Looked at another way:
>  > 
>  > 	rxvt is a GUI application.
>  > 	bash is a console application.
>  
>  Not necessarily. Quoting Igor Pechtchanski: "Cygwin rxvt can run 
>  without X using the W11 library it comes with." - and I think this is 
>  how most people use it under Cygwin.
>  
>  Richard H. Broberg was quite confused: rxvt is a terminal runnig a 
>  shell like bash running applications.
>  

No, I wasn't; in this context I was referring to bash as in
"using the 'bash cygwin shell' shortcut, aka 'bash --login -i'",
which results in a window appearing (yes, it happens to be a console 
window). Running rxvt also causes a window to appear, either on an X 
DISPLAY or as a standalone window.  Running programs in the 
background in the 'bash --login -i' window results in the behavior 
I described.

The end result is that I cannot spawn a bash shell (with --login -i)
which results in a window, put a program nohup in the background, and
exit the window (well, I can, but the window sticks around until
the child process is gone).  And I can do just that in rxvt.

Pedantry and semantics aside, I did some investigation with AllocConsole
and FreeConsole.  Although it seems as though these may be a necessary
component of fixing the problem, it doesn't seem sufficient.  I wrote
a test program which called 'FreeConsole' after it logged something
(so I could be sure it properly ran!), then blocked for 60 seconds.
Running this in a bash window (bash --login -i, aka 'cygwin bash shell')
nohup, input/output redirected, and backgrounded, still didn't let
me exit bash (without blocking).  So even providing that some magic
was done at fork/exec in bash, or in exit() in the library (to ensure
'console' releasing) I think it needs more.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]