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: cygwin Digest 28 Oct 2006 14:33:34 -0000 Issue 5237


On Sun, Oct 29, 2006 at 05:16:28PM -0800, Hari Krishna Dara wrote:
>>---------- Forwarded message ----------
>>From: Christopher Faylor <cgf-no-personal-reply-please@cygwin.com>
>>To: cygwin@cygwin.com
>>Date: Sat, 28 Oct 2006 00:16:09 -0400
>>Subject: Re: rxvt: Ctrl+C leaves child process of native processes
>>On Fri, Oct 27, 2006 at 05:40:36PM -0700, Hari Krishna Dara wrote:
>>>When I hit ^C in an rxvt window (no X), it doesn't result in killing
>>>all the child processes.
>>>
>>>In this specific case, I am running ant, either through ant.bat, ant
>>>(shell script) or through a custom perl wrapper (which directly
>>>executes java bypassing  ant.bat or ant).
>>>
>>>When the perl wrapper is used it is started from another batch file,
>>>so here is how the process execution:
>>>- batch starts a perl command
>>>- perl command starts java (ant)
>>>- ant starts another java process
>>>
>>>The process tree as shown by sysinternals' process explorer is:
>>>
>>>bash
>>> cmd
>>>   perl
>>>     java
>>>       java
>>>
>>>When I hit ^C, bash and cmd exit immediately leaving perl and the two
>>>java processes.
>>
>>Cygwin has no way of knowing what the children of non-cygwin
>>subprocesses are.  So, as you've found, if you don't use a Cygwin
>>program, you won't get linux-like signal results.  This shouldn't be
>>*too* surprising.
>
>I don't completely agree with you. If that is the case, then hitting
>^C in any bash shell should behave the same, but for bash running in a
>native terminal it works as expected. it is not uncommon for make and
>other build systems to span number of child processes, and it would be
>a havoc if these didn't get killed properly (and would make cygwin
>almost unusable). I believe that the problem has something to do with
>rxvt.

You don't have to agree with me but I do understand the code (having
written it) and what you are describing is not surprising.  Undoubtedly,
when you run your non-cygwin program in a console, the program detects
the CTRL-C signal since it is sent by windows.  rxvt is not a console
app and cannot send CTRL-C the same way.  The best it can do is kill the
immediate process.

cgf

--
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]