You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
||3 years ago|
|test||3 years ago|
|LICENSE||3 years ago|
|README.md||3 years ago|
|all-full-example.sh||3 years ago|
|all.sh||3 years ago|
|bash.sh||3 years ago|
|dash.sh||3 years ago|
|noop.sh||3 years ago|
|pkill-P-full-example.sh||3 years ago|
|pkill-P.sh||3 years ago|
|zsh.sh||3 years ago|
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
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🏃 ✔️ ☠