ID非表示さん
2013/6/27 19:46
1回答
子プロセスの PID を取得する方法 (csh または bash)
子プロセスの PID を取得する方法 (csh または bash) . csh で複数のプログラムを起動するスクリプトを作っているのですが、 「&」で起動した子プロセスの PID を取得する方法が分からず困っています。 やりたいのはこんなイメージです。 「複数の子プロセスを「&」で起動させ、全ての子プロセスが終了するまで、スクリプトは待機する。 ただし、Ctrl-C が押されたら、全ての終了していない子プロセスを kill で終了させて、スクリプトも終了する。」 コードはこんな感じです。 ────────────────────────────── onintr __FINALIZE__ echo -n > A.lock (A ; rm -f A.lock) & set A_pid = (A の PID を取得!) # ★ここです★ echo -n > B.lock (B ; rm -f B.lock) & set B_pid = (B の PID を取得!) # ★ここです★ while (-e A.lock || -e B.lock) .... echo "Waiting A and B ends" end __FINALIZE__: if (-e A.lock) then .... kill $A_pid .... rm -f A.lock endif if (-e B.lock) then .... kill $B_pid .... rm -f B.lock endif ────────────────────────────── ここで、星印「★」をつけたところの方法が分からずにおります。この点、ご存知の方、教えて下さいませ。 できれば、csh での方法を希望しますが、csh で無理であれば、bash でも構いません。 あるいは、上記のスクリプトの以外の方法で、やりたいことを実現できる方法がありましたら、それを教えて下さい。 よろしくお願い致します。
C言語関連・7,735閲覧