> -----Original Message----- > From: cygwin-ow...@cygwin.com [mailto:cygwin-ow...@cygwin.com] On Behalf > Of David Karr > Sent: Monday, June 22, 2009 4:42 PM > To: kbr...@cornell.edu; cygwin@cygwin.com > Subject: RE: How to avoid having shell scripts which fail from killing > Emacs shell? > > > -----Original Message----- > > From: cygwin-ow...@cygwin.com [mailto:cygwin-ow...@cygwin.com] On Behalf > > Of Ken Brown > > Sent: Monday, June 22, 2009 12:54 PM > > To: cygwin@cygwin.com > > Subject: Re: How to avoid having shell scripts which fail from killing > > Emacs shell? > > > > On 6/22/2009 3:38 PM, David Karr wrote: > > >> -----Original Message----- > > >> From: cygwin-ow...@cygwin.com [mailto:cygwin-ow...@cygwin.com] On > > Behalf > > >> Of Ken Brown > > >> Sent: Monday, June 22, 2009 12:26 PM > > >> On 6/22/2009 10:53 AM, David Karr wrote: > > >>> I've often been annoyed by shell scripts which fail for particular > > >>> reasons, at which point it causes my Emacs shell buffer to get > killed, > > >>> with "Process shell<2> finished". > > >> I don't recall ever seeing this happen, but maybe I just don't > > remember. > > >> Can you give me a simple test case? > > > > > > I'm not sure how complicated it needs to be. My test case gathers a > > couple > > > of parameters and then calls a Java (JDK 1.6.0_14) class. The class > > throws > > > an exception (file not found) in my test case (because I'm > deliberately > > > giving it parameters that will cause that). If I give it parameters > > that > > > will avoid the exception, then it doesn't kill the shell. > > > > > > Is that enough information to build a test case with? > > > > No. I don't have JDK installed, and I don't have any idea how it > > interacts with cygwin processes. If you can trigger the problem with a > > simple shell script that doesn't require JDK, I'll see if I can help. > > Or maybe someone on the list who does have JDK can suggest something for > > you to try. > > I was able to produce an additional clue by writing a custom class for > testing this. > > I found that the key is whether the Java class reads from stdin or not. I > built a first version that takes a filepath on the command line, and > whether > I get the class to throw an exception or not, it exits the script without > killing the shell. However, when I changed the class to also read a line > of > input from stdin, whether the filepath on the command line exists or not > (i.e., whether the class throws an exception or not), it kills the shell > at > completion of the script. > > So, it has something to do with whether the sub-shell reads stdin or not. > I > have no idea what that indicates, but I'm sure that must be useful > information.
I just tried changing my script to instead just do a "read" with a prompt. This does not kill the shell at the end of the script. When I do it in Java, it kills the shell at the end of the script. Weird. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple