Updated README.

master
Daniel Perelman 3 years ago
parent 9c7b084555
commit 6105c905ed
  1. 29
      README.md

@ -1,3 +1,30 @@
# 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…
Cancel
Save