Christopher,

Apologies for not responding sooner - other work things got in the way.

You say:
> The below ps output indicates that the program is not being started by
> bash.  You can see that it is using /bin/sh.  If you have changed this
> and now start the program via bash then it should work.  If it doesn't
> work, then I really don't know why.

When I originally posted the relevant script did have /bin/sh but I spotted
& changed this almost immediately and it made no difference.

So the relevant script is now:
QUOTE
#!/bin/bash

java -server -classpath
"./formattest.jar;$MERIDIAN_CLASSPATH" -Dmeridian.home="$MERIDIAN_HOME"
com.misys.meridian.runtime.server.StartServer formattest -logToScreen
UNQUOTE

However after all processing has stopped (I have suppressed the kill
statements) ps yields:

      PID    PPID    PGID     WINPID  TTY  UID    STIME COMMAND
      477       1     477        477  con 1006 15:03:10 /usr/bin/bash
      457       1     386        380  con 1006 16:53:05 /usr/bin/sh
      337     457     386        337  con 1006   Jan  1
/cygdrive/d/jdk1.3/bin/java
      453     386     386        448  con 1006 16:54:36 /usr/bin/ps

I have scanned all of my scripts and /bin/sh does not appear in any of them.

Any ideas as to how a bash process can appear as a sh process?

>From a bash window, I can kill the /bin/sh process (457 above).  This does
not terminate the java process (337 above) that was spawned from the /bin/sh
process.  Also, from a bash window if I try to kill the java process I
continue to get a Not owner message.


regards
                                                    Stephen

----- Original Message -----
From: Christopher Faylor <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, March 07, 2002 4:08 PM
Subject: Re: cygwin 1.3.10: kill gives spurious Not owner


> On Thu, Mar 07, 2002 at 03:29:48PM -0000, Stephen Osborn wrote:
> >> /cygdrive/d/jdk1.3/bin/java is undoubtedly not a cygwin process
> >It is a bash script that runs a java program.
> >I would expect the bash script to catch and process the signal.
> >
> >Is this a mistaken assumption?
> >
> >> The work around is to use bash to start the process.
> >This is what I am doing.  The script is only two lines long, viz:
> >
> >#!/bin/bash
> >
> >java -server -classpath
>
>"./NewFlatFileAdapter.jar:$MERIDIAN_CLASSPATH" -Dmeridian.home="$MERIDIAN_H
O
> >ME" com.misys.meridian.runtime.server.StartServer
> >ewFlatFileAdapter  -logToScreen
>
> The below ps output indicates that the program is not being started by
> bash.  You can see that it is using /bin/sh.  If you have changed this
> and now start the program via bash then it should work.  If it doesn't
> work, then I really don't know why.
>
>
> cgf
>
> >----- Original Message -----
> >From: Christopher Faylor <[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>
> >Sent: Monday, March 04, 2002 7:10 PM
> >Subject: Re: cygwin 1.3.10: kill gives spurious Not owner
> >
> >
> >> On Mon, Mar 04, 2002 at 03:54:52PM -0000, Stephen Osborn wrote:
> >> >When using kill I get spurious "Not owner" messages, even though all
> >> >processes (reported by ps) are running as me.
> >> >
> >> >In the mailing list archives the only problems with kill seem to be
> >> >related to killing *other* users' processes.  This is not what I am
> >> >doing.
> >> >
> >> >I am running Cygwin on NT.  Cygcheck o/p at the bottom.
> >> >
> >> >I have a script (A) which runs another script (B) in a separate
> >> >process.  B stores its PID and this is retrieved by the A.  B also
runs
> >> >another script (C) in a separate process.
> >> >
> >> >Script A tries to remove all of these processes in a housekeeping
> >> >exercise, by using ps, grep and script B's PID.
> >> >
> >> >This successfully kills script B but on script C a "Not owner" error
is
> >> >thrown.
> >> >
> >> >This was working as expected (i.e.  both B & C were killed) but this
> >> >changed a couple of days ago.
> >> >
> >> >I have modified script A to remove the kill command and after the run
> >> >ps gives
> >> >
> >> >      PID    PPID    PGID     WINPID  TTY  UID    STIME COMMAND
> >> >      802       1     802        802  con 1006 14:11:18 /usr/bin/bash
> >> >I     564       1     564        564  con 1006 14:11:40 /usr/bin/bash
> >> >      831       1    1020       1034  con 1006 14:38:57 /usr/bin/sh
> >> >      920     831    1020        920  con 1006   Jan  1
> >/cygdrive/d/jdk1.3/bin/java
> >> >      682     802     682        571  con 1006 14:44:04 /usr/bin/ps
> >> >
> >> >Issuing kill 920 (=script C) yields
> >> >bash: kill: (920) - Not owner
> >>
> >> /cygdrive/d/jdk1.3/bin/java is undoubtedly not a cygwin process so it
> >> doesn't respond to cygwin signals.  This is because recent versions of
> >> /bin/sh now use vfork()/exec() to start processes.  vfork/exec does
> >> not leave an cygwin stub around to deal with signals for non-cygwin
> >> processes.
> >>
> >> The work around is to use bash to start the process.
>
> --
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> Bug reporting:         http://cygwin.com/bugs.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to