私のBashスクリプトには、無限ループで特定のタスクを実行する関数があります。コードの次の部分を同時に実行するにはmyFunc &
。
プログラムの残りの部分が完了したら、この機能をどのように終了しますか?
答え1
いくつかのオプションがあります。これが唯一のバックグラウンドプロセスであれば、簡単に終了できます。
kill %1
サブシェルのPIDを保存できます。
myFunc &
myFunc_PID=$!
[...]
kill -HUP "$myFunc_PID"
また、使用することができます
kill %myFunc
EXITハンドラにサブシェル出口を置くのは合理的です。
trap 'kill %myFunc' EXIT