> -----Original Message----- > From: cygwin-ow...@cygwin.com [mailto:cygwin-ow...@cygwin.com] On Behalf > Of Matthias Andree > Sent: Tuesday, June 23, 2009 4:13 AM > To: cygwin@cygwin.com > Subject: Re: How to avoid having shell scripts which fail from killing > Emacs shell? > > David Karr schrieb: > >> -----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. > > Just a few pointers: > > Does the problem go away if the java command is enclosed in parentheses, > so as > to run it in a sub-shell?
No, I tried that earlier. No difference. > Are you using (perhaps in the emacs configuration somewhere) shell options > like > "-e" for the /outer/ shell? No. > Are you sourcing (". scriptname") rather than executing ("scriptname") > your scripts? No. -- 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