From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 203e386c for ; Tue, 30 Jul 2019 00:18:28 +0000 (UTC) Received: (qmail 3562 invoked by alias); 30 Jul 2019 00:18:19 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: List-Unsubscribe: X-Seq: 24111 Received: (qmail 9179 invoked by uid 1010); 30 Jul 2019 00:18:19 -0000 X-Qmail-Scanner-Diagnostics: from joooj.vinc17.net by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.2/25524. spamassassin: 3.4.2. Clear:RC:0(155.133.131.76):SA:0(-1.9/5.0):. Processed in 3.97896 secs); 30 Jul 2019 00:18:19 -0000 X-Envelope-From: vincent@vinc17.net X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at vinc17.net does not designate permitted sender hosts) Date: Tue, 30 Jul 2019 02:17:38 +0200 From: Vincent Lefevre To: zsh-users@zsh.org Subject: Re: kill the LHS command of a pipe once the RHS command terminates Message-ID: <20190730001738.GC28524@zira.vinc17.org> Mail-Followup-To: zsh-users@zsh.org References: <20190628110430.GA13790@zira.vinc17.org> <20190729152309.GA17940@cventin.lip.ens-lyon.fr> <20190729204857.GA28524@zira.vinc17.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Mailer-Info: https://www.vinc17.net/mutt/ User-Agent: Mutt/1.12.1+33 (6a74e24e) vl-117499 (2019-06-23) On 2019-07-29 17:00:30 -0700, Bart Schaefer wrote: > On Mon, Jul 29, 2019 at 1:50 PM Vincent Lefevre wrote: > > > > > > Concerning the documentation, the zshexpn(1) man page does not say > > > > that a process in process substitution is run in background. > > > > > > They have to be, otherwise either you'd need unlimited buffering or > > > the read of the descriptor could deadlock. > > > > I don't see how this is related to buffering. This would be the same > > case as with a pipe (cmd1 | cmd2), for which both commands run in > > foreground and there are no buffering issues. > > You're wrong about this. In (cmd1 | cmd2), zsh forks off cmd1 into > its own process. It is effectively "in the background" even though > the entire pipeline is considered to be in the foreground; the only > process that is really "in the foreground" is cmd2. No, cmd1 is definitely not run in background, as ssh (as a descendent of cmd1) still has access to the controlling terminal: I can type the passphrase, which was not the case with <() process substitution. > > It says that jobs explicitly put into the background are run > > asynchronously, but nothing about the converse. > > I'm not sure how you get "nothing about the converse" from "Certain > jobs are run asynchronously ... OTHER THAN THOSE explicitly put into > the background;" ("other than" refers to "certain jobs" that are > asynchronous but "(not) explicitly" backgrounded) and "Examples of > such asynchronous jobs are process substitution" ... but in any case I meant that zsh does not say whether jobs that are run asynchronously are necessarily background processes (thus with no access to the controlling terminal). > this was one of those cases where the zsh manual assumed you know how > "most" shells work and therefore what these terms mean, and that it > only had to explain what it might be doing differently. The whole > manual page used to be written this way and we are only gradually > turning it into a standalone reference. The reference is POSIX, and POSIX does not seem to use the notion of "run asynchronously" as in zsh. There are "asynchronous lists", but these are exclusively commands terminated by "&". -- Vincent Lefèvre - Web: 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)