バグ #2065
完了
kurihara さんが13年以上前に追加.
13年以上前に更新.
説明
静岡大 清水様からの報告
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 にセット
- 進捗率 を 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()の処理を追加する必要があり。
どちらにするかは、要検討。
- ステータス を 担当 から 解決 に変更
- 進捗率 を 80 から 100 に変更
他の形式にエクスポート: Atom
PDF