[openrtm-users 01671] Re: ゾンビプロセスの消し方

栗原眞二 shinji.kurihara @ aist.go.jp
2011年 4月 22日 (金) 13:21:36 JST


静岡大学 清水先生

産総研 栗原です。

ご連絡いただき、有難うございます。

こちらで調査いたしましたところ、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> も必要です。)

次期リリース版にて修正させて頂きます。


以上、宜しくお願いいたします。



2011年4月21日18:12 Masayuki Shimizu <masayuki.shimizu @ aist.go.jp>:
> 皆様
>
> 静岡大学の清水です。
>
> LinuxでRTCを動かし、psコマンドでプロセスの状態を眺めてい
>> 気づいたのですが、コンソールからコンポーネントを起動する
> と、
> 以下のようにゾンビプロセスができます。
>
> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START
>  TIME COMMAND
> shimizu  16971  0.2  0.3  42816  6148 pts/0    Sl+  17:54
>  0:00 ./ConsoleOutComp
> shimizu  16976  0.0  0.0      0     0 pts/0    Z+   17:54
>  0:00 [sh] <defunct>
>
> * ConsoleOutCompを実行したときのpsの表示結果。
> 16976がゾンビプロセスとして認識されている。
>
> * 環境:OpenRTM-aist-1.0.0(C++), Ubuntu10.04.
>
> コンポーネントを終了すればゾンビも一緒に消えますし、
> 動いている間もメモリやCPUを消費していないので、
> 特に実害はありません。
>
> ただ、プロセス上にゾンビがあるのは心地良くないので、
> ゾンビを消す、もしくはゾンビとして認識されないように
> したいのですが、良い方法をご存知の方は
> ご教示頂けると幸いです。
>
> よろしくお願いいたします。
>
> 清水
>
> --------------------
> Masayuki Shimizu
> Assistant Professor
> Dept. of Mechanical Engineering, Shizuoka Univ.
> 3-5-1, Johoku, Naka-ku, Hamamatsu 432-8561, JAPAN
> TEL/FAX: +81-53-478-1061
> Email: tmsimiz @ ipc.shizuoka.ac.jp
>
>



-- 
栗原 眞二 <shinji.kurihara @ aist.go.jp>

独立行政法人産業技術総合研究所
知能システム研究部門 統合知能研究グループ
〒305-8568
茨城県つくば市梅園1-1-1 中央第2

TEL: 029-861-5956



openrtm-users メーリングリストの案内