Updated README.
parent
9c7b084555
commit
6105c905ed
@ -1,3 +1,30 @@
|
|||||||
# kill-child-jobs
|
# kill-child-jobs
|
||||||
|
|
||||||
Examples of how to kill all child jobs when a shell script exits.
|
Examples of how to kill all child jobs when a shell script exits.
|
||||||
|
|
||||||
|
[`all-full-example.sh`](all-full-example.sh) starts some jobs, disowns
|
||||||
|
one of them, and kills all jobs when it exits.
|
||||||
|
[`pkill-P-full-example.sh`](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`](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🏃 ✔️ ☠
|
||||||
|
```
|
||||||
|
Loading…
Reference in New Issue