Control-c of a bat file does not kill commands run by bat file in some cases

Hugh Sasse hgs@dmu.ac.uk
Fri Jul 18 19:50:00 GMT 2008


On Fri, 18 Jul 2008, Mark Charney wrote:

> Is this a bug or a feature?
>
> When I run a program loop.exe   whose entire source is "int main()
> {   while(1);  return 0;}", compiled with MS VS8 or cygwin's gcc,
> from a bat file whose contents are just "loop.exe" and hit
> control-c while it is running, sometimes cygwin kills the loop.exe
> and sometimes it does not. Here are the 6 scenarios that I tried:
>
> 1. OKAY tcsh  from a cmd.exe
> 2. OKAY bash from a cmd.exe
> 3. BROKEN tcsh from an rxvt X window  on local machine
> 4. BROKEN bash from an rxvt X window on local machine
> 5. BROKEN tcsh via ssh from a remote machine  (public key auth)
> 6. BROKEN bash via ssh from a remote machine (public key auth)
>
> OKAY means it kills the bat file and loop.exe
> BROKEN means loop.exe continues to run after control-c.
>
> bash/tcsh doesn't not seem to matter, I just did it because I first noticed the problem on tcsh.

Agreed.

The thing that is varying, it seems to me, is your perceived
terminal type.  I mean as perceived by the system.  Try the
3 ways of connecting {cmd, rxvt, ssh} against 
stty -a
echo $TERM
to see what these things are.  I think stty -a should suffice
to tell you what "intr" is.  Or, in other words, you may have
to hit something other than <ctrl-C> to kill things, unless you
reset it with stty.

         HTH
         Hugh


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



More information about the Cygwin mailing list