1
0
Форк 0
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/
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
Daniel Perelman 0e4167e786 Fix typo. 4 роки тому
test Fix extra newlines in output. 4 роки тому
LICENSE Initial commit 4 роки тому
README.md Updated README. 4 роки тому
all-full-example.sh Improved full example and added pkill-P version. 4 роки тому
all.sh Remove outdated comment. 4 роки тому
bash.sh Fix comments. 4 роки тому
dash.sh Fix comments. 4 роки тому
noop.sh kill_child_jobs() implementation that does nothing for testing. 4 роки тому
pkill-P-full-example.sh Fix typo. 4 роки тому
pkill-P.sh Fix typo. 4 роки тому
zsh.sh Fix comments. 4 роки тому

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🏃	✔️	☠