[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: "wait" loses signals
From: |
Denys Vlasenko |
Subject: |
Re: "wait" loses signals |
Date: |
Thu, 20 Feb 2020 09:02:37 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 2/19/20 9:30 PM, Chet Ramey wrote:
On 2/19/20 5:29 AM, Denys Vlasenko wrote:
A bug report from Harald van Dijk:
test2.sh:
trap 'kill $!; exit' TERM
{ kill $$; exec sleep 9; } &
wait $!
The above script ought exit quickly, and not leave a stray
"sleep" child:
(1) if "kill $$" signal is delivered before "wait",
then TERM trap will kill the child, and exit.
This strikes me as a shaky assumption, dependent on when the shell receives
the SIGTERM and when it runs traps.
The undisputable fact is that after shell forks a child
to run the "{...} &" subshell, it will receive the SIGTERM signal.
And since it has a trap for it, it should be run.
(There's nothing in POSIX that says
when pending traps are processed. Bash runs them after commands.)
Yes, and here we are "after command", specifically after "{...} &" command.
Since we got a trapped signal, we must run its trap.
- "wait" loses signals, Denys Vlasenko, 2020/02/19
- Re: "wait" loses signals, Chet Ramey, 2020/02/19
- Re: "wait" loses signals,
Denys Vlasenko <=
- Re: "wait" loses signals, Robert Elz, 2020/02/24
- Re: "wait" loses signals, Denys Vlasenko, 2020/02/24
- Re: "wait" loses signals, Robert Elz, 2020/02/24
- Re: "wait" loses signals, Daniel Colascione, 2020/02/24
- Re: "wait" loses signals, Chet Ramey, 2020/02/24
- Re: "wait" loses signals, Robert Elz, 2020/02/24