複数の無料プロセスを生成する複数のアクティブスクリプトのPIDを追跡する方法

複数の無料プロセスを生成する複数のアクティブスクリプトのPIDを追跡する方法

各プログラム間で共通のジョブ、データの変更、および処理のために別の場所に送信するジョブを順番に実行する必要があるいくつかのプログラムがあります。各修正データスクリプトは、基本データをコピーした後に複数のサブスレッドを生成します。すべてのサブスレッドを追跡したい場合、基本プログラムに問題が発生した場合は、処理を再開する必要がある場合によっては、実行中のedit_dataスクリプトの生成サブスレッドを1つ以上終了する必要があります。

親IDが何であるかを知っている場合は、pkill -STOP -P $desired_PIDを使用できますが、データを変更するスクリプトのpidを追跡し、実行が完了した後に削除して誤って発生しないようにするための良い方法が必要です。他のものを殺す私の素朴な解決策は、各スクリプトがいくつかの環境変数に生成されたときに$ $を記録し、スクリプトの実行が完了したらその変数からそれらを削除することです。しかし、いくつかの問題を見て、より多くの問題が生成されたと思われます。良い解決策です。

ドライバの例:

progr1
prog2
modify_data.sh && active_pid="$active_pid $$"
prog3
modify_prog.sh && active_pid="$active_pid $$"
prog4
prog5
prog6
modify_prog.sh && active_pid="$active $$"
...

関連情報