1
0
Vork 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/
Je kunt niet meer dan 25 onderwerpen selecteren Onderwerpen moeten beginnen met een letter of nummer, kunnen streepjes bevatten ('-') en kunnen maximaal 35 tekens lang zijn.
Daniel Perelman 0e4167e786 Fix typo. 4 jaren geleden
test Fix extra newlines in output. 4 jaren geleden
LICENSE Initial commit 4 jaren geleden
README.md Updated README. 4 jaren geleden
all-full-example.sh Improved full example and added pkill-P version. 4 jaren geleden
all.sh Remove outdated comment. 4 jaren geleden
bash.sh Fix comments. 4 jaren geleden
dash.sh Fix comments. 4 jaren geleden
noop.sh kill_child_jobs() implementation that does nothing for testing. 4 jaren geleden
pkill-P-full-example.sh Fix typo. 4 jaren geleden
pkill-P.sh Fix typo. 4 jaren geleden
zsh.sh Fix comments. 4 jaren geleden

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