操作
バグ #2065
完了コンポーネント実行時のゾンビプロセスについて
開始日:
2011/04/22
期日:
進捗率:
100%
予定工数:
説明
静岡大 清水様からの報告
LinuxでRTCを動かし、psコマンドでプロセスの状態を眺めてい て 気づいたのですが、コンソールからコンポーネントを起動する と、 以下のようにゾンビプロセスができます。 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND *** 16971 0.2 0.3 42816 6148 pts/0 Sl+ 17:54 0:00 ./ConsoleOutComp *** 16976 0.0 0.0 0 0 pts/0 Z+ 17:54 0:00 [sh] <defunct>
kurihara さんが13年以上前に更新
- ステータス を 新規 から 担当 に変更
- 担当者 を kurihara にセット
- 進捗率 を 0 から 80 に変更
こちらで調査いたしましたところ、RTM側でpopen()に対するwait()もしくは、 waitpid()の処理が抜けていることが判明いたしました。 RTCでどのネットワークインターフェースを使用するかを判別するために、 ”route”もしくは"ip"コマンドをpopen()を用いて実行してます。 OpenRTM-aist/src/lib/coil/posix/coil/Routing.cpp内のpclose(fp); の後にwait(NULL);を入れる事で、こちらではゾンビプロセスは出なく なりました。(暫定対応) ( #include <sys/wait.h> も必要です。)
wait()もしくは、waitpid()の処理を追加する必要があり。
どちらにするかは、要検討。
操作