Examples of how to kill all child jobs when a shell script exits.
https://aweirdimagination.net/2020/06/28/kill-child-jobs-on-script-exit/
Je kunt niet meer dan 25 onderwerpen selecteren
Onderwerpen moeten beginnen met een letter of nummer, kunnen streepjes bevatten ('-') en kunnen maximaal 35 tekens lang zijn.
Daniel Perelman 0e4167e786 | 4 jaren geleden | |
---|---|---|
test | 4 jaren geleden | |
LICENSE | 4 jaren geleden | |
README.md | 4 jaren geleden | |
all-full-example.sh | 4 jaren geleden | |
all.sh | 4 jaren geleden | |
bash.sh | 4 jaren geleden | |
dash.sh | 4 jaren geleden | |
noop.sh | 4 jaren geleden | |
pkill-P-full-example.sh | 4 jaren geleden | |
pkill-P.sh | 4 jaren geleden | |
zsh.sh | 4 jaren geleden |
README.md
kill-child-jobs
Examples of how to kill all child jobs when a shell script exits.
all-full-example.sh
starts some jobs, disowns
one of them, and kills all jobs when it exits.
pkill-P-full-example.sh
does the same
except it kills all child processes when it exits.
The remaining scripts in the root are variants of the
kill_child_jobs()
function. The test/test-all.sh
script tests them all and generates the following output showing which
version of the kill_child_jobs()
function works in each shell:
Legend:
∞=script does not halt (after 1 second timeout)
X=disown unsupported by shell
☠=all children killed
🏃=all children still running
✔️=expected result (job killed, disowned child alive)
bash sh ash dash zsh ksh
all.sh ✔️ X☠ X☠ X☠ ✔️ ☠
bash.sh ✔️ X🏃 ∞X☠ X🏃 ✔️ ☠
dash.sh ✔️ X☠ X☠ X☠ 🏃 ☠
noop.sh 🏃 X🏃 X🏃 X🏃 🏃 🏃
pkill-P.sh ☠ X☠ X☠ X☠ ☠ ☠
zsh.sh ∞✔️ X🏃 ∞X☠ X🏃 ✔️ ☠