トップレベルのスクリプトが終了したときに混乱をクリーンアップする方法を探しています。
特に使用したいset -e
場合は、スクリプトが終了したときにバックグラウンドプロセスが終了することを望みます。
いくつかの混乱をクリーンアップするために、trap
を使用することができます。特定のシグナルが到着したときに実行されるもののリストを提供できます。
trap "echo hello" SIGINT
ただし、シェルが終了した場合に何かを実行するために使用することもできます。
trap "killall background" EXIT
これは組み込みなので、help trap
情報を提供します(bashで動作します)。バックグラウンドジョブのみを強制終了したい場合は、次のことができます。
trap 'kill $(jobs -p)' EXIT
'
シェルが$()
すぐに置き換えられないように、singleの使用に注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加