From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10284 invoked by alias); 18 Feb 2017 10:24:33 -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: X-Seq: 22476 Received: (qmail 24313 invoked from network); 18 Feb 2017 10:24:33 -0000 X-Qmail-Scanner-Diagnostics: from thoth.sbs.de 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(192.35.17.2):SA:0(-5.0/5.0):. Processed in 2.027539 secs); 18 Feb 2017 10:24:33 -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=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: Andre.Albsmeier@siemens.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at siemens.com does not designate permitted sender hosts) Date: Sat, 18 Feb 2017 11:24:22 +0100 From: Andre Albsmeier To: Bart Schaefer Cc: Andre Albsmeier , zsh-users@zsh.org Subject: Re: exec'ing $0 in traps Message-ID: <20170218102422.GA67180@bali> References: <20170217081604.GA59728@bali> <170217120219.ZM11847@torch.brasslantern.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <170217120219.ZM11847@torch.brasslantern.com> User-Agent: Mutt/1.7.1 (2016-10-04) On Fri, 17-Feb-2017 at 12:02:19 -0800, Bart Schaefer wrote: > On Feb 17, 9:16am, Andre Albsmeier wrote: > } > } #!/bin/zsh > } > } echo started > } trap 'echo trapped; exec "$0"' 1 > } > } echo $$ > /tmp/blafasel > } > } while read line; do > } echo line $line > } done > > Some combination of the "read" builtin plus calling "exec" from inside > the signal handler is causing the HUP signal to remain blocked across > the "exec" -- and re-installing the trap doesn't unblock it. Too bad. Maybe this gets fixed one day. Meanwhile I use this: #!/bin/zsh restart="" echo started trap 'restart=1' 1 echo $$ > /tmp/blafasel while :; do [ $restart ] && exec $0 read line || exit 0 echo line $line done and it seems to do what I need...