This is the mail archive of the cygwin 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: Bash process remains after I close rxvt in certain ways


On Mon, 13 Nov 2006, Eric Blake wrote:

> According to Eric Lilja on 11/12/2006 12:52 PM:
> > I recently upgraded to a dual core machine which made me use the windows
> > task manager alot. That's when I noticed that if I close the rxvt window
> > by pressing 'x' in the top right corner (or doing alt-f4, I never do
> > this, just tried it now to see what happened) the rxvt process is
> > terminated and the window disappears but the "underlying" bash process
> > is still running (without a visible window), consuming ~3.5 MB of memory
> > and 0 cpu time according to the task manager.
>
> So far, no one has found a good way for a cygwin process killed by Alt-F4
> (or the X button) to treat that as a SIGHUP and pass that information on
> to all of its children processes.  So, by killing rxvt abruptly, you are
> indeed stranding bash as a zombie process.
>
> > If I exit rxvt by typing
> > exit, the bash process is terminated too.
>
> Actually, typing exit will exit bash, not rxvt; but when rxvt realizes
> that all of its children processes have exited, it exits as well.
>
> > Can I do something so the bash
> > process is always terminated properly no matter how I close the rxvt
> > window?
>
> Submit a patch to make cygwin processes recognize Alt-F4 as a SIGHUP that
> needs to be passed to their children?  Or possibly even a patch such that
> when a controlling pty terminal is closed, all children (such as bash)
> reading from that pty get an end-of-input (possibly a SIGPIPE) when trying
> to read from the disappearing terminal?

Actually, it's not the Cygwin processes that need that feature, but the
W11 library.  When rxvt is closed via the 'X' button or Alt-F4, Windows
sends it the WM_QUIT message, which ought to be handled properly in the
library as application exit (and thus send SIGHUP to all immediate
children).  This is done by the Cygwin console already, so it may simply
be a matter of copying/pasting some code...

> > Is there misconfiguration on my end or should I simply get in
> > the habit of always using exit to close rxvt?
>
> For now, that is the best course of action.

If you don't want to go looking at the guts of the W11 library, yes.
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_	    pechtcha@cs.nyu.edu | igor@watson.ibm.com
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.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]