X-Spam-Check-By: sourceware.org Date: Sun, 29 Oct 2006 21:10:48 -0500 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: cygwin Digest 28 Oct 2006 14:33:34 -0000 Issue 5237 Message-ID: <20061030021048.GA30520@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <1162046014 DOT 3618 DOT ezmlm AT cygwin DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.11 Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Sun, Oct 29, 2006 at 05:16:28PM -0800, Hari Krishna Dara wrote: >>---------- Forwarded message ---------- >>From: Christopher Faylor >>To: cygwin AT cygwin DOT 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/