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: How to avoid having shell scripts which fail from killing Emacs shell?


> -----Original Message-----
> From: cygwin-owner@cygwin.com [mailto:cygwin-owner@cygwin.com] On Behalf
> Of David Karr
> Sent: Monday, June 22, 2009 4:42 PM
> To: kbrown@cornell.edu; cygwin@cygwin.com
> Subject: RE: How to avoid having shell scripts which fail from killing
> Emacs shell?
> 
> > -----Original Message-----
> > From: cygwin-owner@cygwin.com [mailto:cygwin-owner@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-owner@cygwin.com [mailto:cygwin-owner@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]