From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1564 invoked by alias); 23 Apr 2018 14:03:26 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 42705 Received: (qmail 2476 invoked by uid 1010); 23 Apr 2018 14:03:26 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.12):SA:0(-6.9/5.0):. Processed in 1.198919 secs); 23 Apr 2018 14:03:26 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_PASS,SPF_PASS,T_DKIMWL_WL_HIGH,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20180423140321euoutp02e6ea3894c3ac5ce97fb6b451f3bfc58c~oFZSMFR3x0719307193euoutp02d DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1524492201; bh=LQa3yK9l5/6m9Dn4wu+Me7KBNjMI8zYGVpHkzpKYAFY=; h=Date:From:To:Subject:In-reply-to:References:From; b=ffwuStd7aS83TUZQ0bavwgU+p8vCbb8FzxW/oWgRGdqc1wgTep1MELezGoarXCeH5 Ai+07F9E5/8LZjq20jAM91Fa3Jma6c4k7fdJxSPoeNWAV8N33MCOwfcoHVk48sDDiM L8ke8S/YA/klHWQMp7vytKntOV9y5F1ktOfdR9Hs= X-AuditID: cbfec7f5-f95739c0000028a9-b9-5adde7a4429b Date: Mon, 23 Apr 2018 15:03:12 +0100 From: Peter Stephenson To: Zsh hackers' list Subject: Re: "echo | ps -j $(:) | cat | cat | cat" runs components in different process groups Message-id: <20180423150312.5e0c0416@camnpupstephen.cam.scsc.local> In-reply-to: <20180423145238.2c296ec3@camnpupstephen.cam.scsc.local> Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCIsWRmVeSWpSXmKPExsWy7djP87pLnt+NMni0gsfiYPNDJgdGj1UH PzAFMEZx2aSk5mSWpRbp2yVwZXye8pel4BNnxYE3x5gaGPeydzFyckgImEhMap/N1MXIxSEk sIJRoufjbBYIp5dJ4tWOg6wwVUvOX2SHSCxjlNh97BBYQkhgGpNE49oAiMQZRolza/dDzbrA KLHh+BIWkCoWAVWJp5MbmEBsNgFDiambZjOC2CIC2hKfPp9mA7GFBRIkzu7ZAVbDK+As0fBn M9AGDg5OAReJ1n9iICa/gJDEhWZbiIPsJY7uOQlVLSjxY/I9sE3MAjoS27Y9Zoew5SU2r3nL DHKOhMAUNokzV3+zQTS7SHx9tRHqM2GJV8e3QMNCRuLy5G4WiIZmRom19+9DNfQwSsxaHAph W0v03b7ICLGBT2LStunMIMdJCPBKdLQJQZR4SFy79BlqpqPEqr1trJAwec4u8XndIdYJjPKz kBw+C8nhs5AcvoCReRWjeGppcW56arFxXmq5XnFibnFpXrpecn7uJkZg3J/+d/zrDsZ9f5IO MQpwMCrx8O7QvRslxJpYVlyZe4hRgoNZSYTXYxtQiDclsbIqtSg/vqg0J7X4EKM0B4uSOG+c Rl2UkEB6YklqdmpqQWoRTJaJg1OqgbGxeq3y5ujjledSOz4tNdheoH44r6tsjee9TpOWFzfV 3ER1/b5EMzmvVRT02THziN75b9t7nv72slf5tvDz1ocs/3cuuX/q2iKOqAnnDvx+svwn//Om g50n/qna/lthWPl7e3vfzKiEH7a7Nwswb0sr8NnN6RJqtUz26AXXLTujQp2jHYTt5cqVWIoz Eg21mIuKEwEZRPSH9wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrMLMWRmVeSWpSXmKPExsVy+t/xq7qLnt+NMph2UtbiYPNDJgdGj1UH PzAFMEZx2aSk5mSWpRbp2yVwZXye8pel4BNnxYE3x5gaGPeydzFyckgImEgsOX8RyObiEBJY wiix6/lORghnBpPE8aOH2SCcc4wS/yeuZoJwLjBKfPu7iQWkn0VAVeLp5AYmEJtNwFBi6qbZ jCC2iIC2xKfPp9lAbGGBBIlFTyaAxXkFnCUa/mxm7WLk4OAUcJFo/ScGMfM5u8SE3hnMIHF+ ASGJC822EOfZSxzdc5IJolVQ4sfke2BrmQW0JDZva2KFsOUlNq95ywxiCwmoS9y4u5t9AqPQ LCQts5C0zELSsoCReRWjSGppcW56brGRXnFibnFpXrpecn7uJkZg0G479nPLDsaud8GHGAU4 GJV4eHfo3o0SYk0sK67MPcQowcGsJMLrsQ0oxJuSWFmVWpQfX1Sak1p8iFGag0VJnPe8QWWU kEB6YklqdmpqQWoRTJaJg1OqgTH2Uk3GXO10Adnyv9rF8710NzRqellv+zX3hMLd69+WPeFJ 8Y8POXPiZ4HAh9Wz7xQmSvceaxf3MN69LFC4u2nCYkO5/jLrpedXLUyQfnw7apebVrTA6pvn NuxJLnQz1zV1iQtct3Pnql83FburgwOP6b12Xt788YGmb1inSn3u3CDndX2m+5VYijMSDbWY i4oTAZdO54lWAgAA X-CMS-MailID: 20180423140314eucas1p17748ff7388c77f032809978c508310f0 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180324221021epcas1p184507a6328dbd505b97db69c1f9d8194 X-RootMTR: 20180324221021epcas1p184507a6328dbd505b97db69c1f9d8194 References: <180323221959.ZM27569@torch.brasslantern.com> <180324150945.ZM32251@torch.brasslantern.com> <20180410124545.13fccd5d@camnpupstephen.cam.scsc.local> <20180410145926.64c4f671@camnpupstephen.cam.scsc.local> <180411151025.ZM19332@torch.brasslantern.com> <20180412172342.52df6b10@camnpupstephen.cam.scsc.local> <20180415162326.GA12549@chaz.gmail.com> <20180415185804.GB12549@chaz.gmail.com> <180416223910.ZM32002@torch.brasslantern.com> <20180417101947.5fd347df@camnpupstephen.cam.scsc.local> <180417090926.ZM2456@torch.brasslantern.com> <20180417173558.769503bd@camnpupstephen.cam.scsc.local> <180417105243.ZM2929@torch.brasslantern.com> <20180419104039.7b86ed2b@camnpupstephen.cam.scsc.local> <20180423145238.2c296ec3@camnpupstephen.cam.scsc.local> On Mon, 23 Apr 2018 14:52:38 +0100 Peter Stephenson wrote: > > zsh% ls | less > > zsh: done ls | > > zsh: suspended (tty output) less > > Hmmm --- I wonder if less was already forked and that's the problem? > So maybe we should check if there are other processes already forked > and avoid resetting the pgrp leader in that case? Does anyone > actually know? Actually, I think this is the *other* thing I was wondering about but didn't get around to taking account of... See if this makes it reliable. I don't think it breaks the original fix. The main reason I didn't do this is the effect of killpg with signal 0 isn't actually defined in the Linu man pages or as far as I can see in POSIX. But we do this elsewhere so presumably it's a well-known fact this works... pws diff --git a/Src/signals.c b/Src/signals.c index 6e12158..f2165c0 100644 --- a/Src/signals.c +++ b/Src/signals.c @@ -538,7 +538,8 @@ wait_for_processes(void) update_process(pn, status); #endif if (WIFEXITED(status) && - pn->pid == jn->gleader) { + pn->pid == jn->gleader && + killpg(pn->pid, 0) == -1) { jn->gleader = 0; if (!(jn->stat & STAT_NOSTTY)) { /*