1
0
Fork 0

Updated README.

master
Daniel Perelman 4 years ago
parent 9c7b084555
commit 6105c905ed

@ -1,3 +1,30 @@
# kill-child-jobs
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