public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: cyg Simple <cygsimple@gmail.com>
To: cygwin@cygwin.com
Subject: Re: Killing-Process woes
Date: Tue, 20 Jun 2017 13:18:00 -0000	[thread overview]
Message-ID: <f3b72886-7424-7cd6-b160-64a9515bcc36@gmail.com> (raw)
In-Reply-To: <1497939835.2871765.1014990544.3396EEF9@webmail.messagingengine.com>

On 6/20/2017 2:23 AM, Ronald Otto Valentin Fischer wrote:
> I'm spawning processes in background, but have problems killing them.
> Here is the setup:
> 

Maybe review the Cygwin document at
https://cygwin.com/cygwin-ug-net/kill.html would help.

> My script (zsh) creates one or more processes in the background, and
> waits until they are finished. I have also set up a trap for SIGINT,
> with the intention that if I press Control-C, the background processes
> should be killed. I have verified the setup so far, that upon Control-C,
> the trap function is indeed invoked, and I have all the PIDs of the
> background processes. The problem is with the actual killing, and here
> is why:
> 
> The background processes are actually (zsh-) scripts, which do some
> setup (basically setting various environment variables), and then invoke
> a (Cygwin-)Ruby program which does the "real work". The program is
> executed by something like
> 
>     ruby myprog.rb
> 
> (Note that this Ruby program is NOT invoked in background).
> 
> When my SIGINT trap is entered, I can see from ps indeed the
> relationship between the processes involved, for instance
> 
>     10852    9296    6224      10536  cons3    3672028 08:05:10
>     /usr/bin/ruby
>      9296    6224    6224      11236  cons3    3672028 08:05:10
>      /usr/bin/zsh
> 
> The PID of my background process - the zsh wrapper - in this concrete
> case is 9296, and we can see that this is the parent of the Ruby
> process, 10852. The problem is that if I just kill 9296, the Ruby
> process keeps running, orphaned:
> 
>     10852       1    6224      10536  cons3    3672028 08:05:10
>     /usr/bin/ruby
> 
> I've found on Stackoverflow the suggestion to treat this as a process
> group and use negative PIDs. I tried this too, but it didn't work. Here
> is a similar example:
> 

Not implemented as you found out below.  But I don't know that the
negative process number is in use anywhere.  Are you sure it wasn't a
signal number as a option to kill?

>      5548   10276    5812       2376  cons3    3672028 08:20:43
>      /usr/bin/ruby
>     10276    5812    5812      10312  cons3    3672028 08:20:43
>     /usr/bin/zsh
> 
> If I do a
> 
>     kill -- -10276
> 
> I get the error message
> 
>      kill: -10276: No such process
> 
> This happens both with the zsh-builtin kill and with /usr/bin/kill Is
> there a simple way to kill the zsh process in addition to the ruby
> process, or do I have to analyze the output of the ps command to
> manually find the PID of the Ruby process and kill it?

Perhaps use the -f --force switch might help.

-- 
cyg Simple

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

  reply	other threads:[~2017-06-20 13:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-20  6:24 Ronald Otto Valentin Fischer
2017-06-20 13:18 ` cyg Simple [this message]
2017-06-20 13:30   ` Ronald Fischer
2017-06-24  8:48     ` Csaba Raduly

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f3b72886-7424-7cd6-b160-64a9515bcc36@gmail.com \
    --to=cygsimple@gmail.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).