環境:
ユーザーは、実行するカスタム スクリプトを提供してくれます。これらのスクリプトは、複数の GUI プログラムやバックエンド サービスを開始するためのスクリプトなど、どのようなものでもかまいません。スクリプトの作成方法を制御することはできません。これらのスクリプトはブロッキング タイプにすることができます。つまり、実行はすべての子プロセス (順次実行されるプログラム) が終了するまで待機します。
#exaple of blocking script
echo "START"
first_program
second_program
echo "DONE"
またはノンブロッキングタイプ、つまり、子プロセスをバックグラウンドで fork し、次のようなものを終了するタイプ
#example of non-blocking script
echo "START"
first_program &
second_program &
echo "DONE"
私は何を達成しようとしていますか?
ユーザー提供のスクリプトは、上記の 2 つのタイプのいずれか、または両方の組み合わせにすることができます。私の仕事は、スクリプトを実行し、スクリプトによって開始されたすべてのプロセスが終了するまで待ってから、ノードをシャットダウンすることです。ブロッキングタイプの場合、ケースは単純です。つまり、スクリプト実行プロセスの PID を取得し、ps -ef|grep -ef PID のエントリがなくなるまで待ちます。ノンブロッキング スクリプトが問題を引き起こしている
スクリプトの実行によって生成されたすべての子プロセスの PID のリストを取得する方法はありますか? ポインタやヒントは高く評価されます