X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=btvWat2Ieex1zwKT LEBOQ8afZiw782e8E5k1rLinnjqAPofwxU1Zpd1vvPufLX/cEd2vrJdLEaebjNuj QNvSLfUWlkKhMSfqZA1yMloKq8cli4a1Nx4v0Sir3NdVDEpIWqvr98HG4Kn9zHgw 16OtVQAcdzkeCmiWpdPyZ6zfUrM= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=jEzf0bRN9NQztc9N0wGpiK W7oE0=; b=KTjBlyULtalymMRdtA0XTIYpaEGkufxoWNJWisqdHcinrbMY4KD52R H4BJtH9sU5GwCYJU09zHyYGiu/3GVXuiWJoex1wMGMGqP4T0CFwXr1qWh13r+Fze pvzalsvcPF+logm2IqfMIq2ZaeF3neYX7TGB5RswK56zoVvzepZes= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=Valentin, valentin, Otto, otto X-HELO: mail-io0-f180.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=CWd/gqKTPkNUJaHMDwfaOACMzTE/X6KW84WCosilbH4=; b=RdW6F3Feu8KJoXJd95nDhQJj89AuIEEpYxphaYVyzipigy0q57i+6K4SheXpCsr51B bkykBH6l34sdoEwTGy9yu1gGoBb4eLA1xMBPfxBvn3rzj154wuYJiuT2n/40dTDhTac+ Zz5ANIQeeBI3dn+4ro0SIRDIzEUNQ8BGpdSEpB+p/lCsjuI6ByhwrhMZY4jEdn6IxLXk +kVNb7+0hRIIK+AgzN647fPZdAqRuPP8T9oMD5/ubhwyl1tE+68F4J0n4XAOIDqdZR6e ZkskBosiUjmjIgpYVsnAS4hQF1L49Tuersvw4PH1rOSQxAKAcmjHQIrSPDyg+JwALL5r jRVA== X-Gm-Message-State: AKS2vOwAuM9PBHfsPrGbG2Yhm+OnKXWGDJBcU3IONne2ff6A78eUDK2D 3aC6CUmV65xTOGI9 X-Received: by 10.107.18.146 with SMTP id 18mr18406414ios.144.1497964694368; Tue, 20 Jun 2017 06:18:14 -0700 (PDT) Subject: Re: Killing-Process woes To: cygwin AT cygwin DOT com References: <1497939835 DOT 2871765 DOT 1014990544 DOT 3396EEF9 AT webmail DOT messagingengine DOT com> From: cyg Simple Message-ID: Date: Tue, 20 Jun 2017 09:18:16 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: <1497939835.2871765.1014990544.3396EEF9@webmail.messagingengine.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-IsSubscribed: yes 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