[Armadillo:08756] Re: Armadillo-420 へtelnetアクセス時にゾンビプロセスが生成される

Yasuhisa Nakamura email@hidden
2013年 4月 22日 (月) 21:49:52 JST


中村です。

[Armadillo:08753]で Yasushi SHOJI さんは書きました:
> ゾンビになっていたのは shell だと思うのですが、あってますか?
> # telnet で入ったら増えると書かれていたので。

yashiさん、
これ、私も気になって調べてました。

rc.localからinitに制御が戻されず、initによる
ゾンビ回収がなされないのだろう、というところ
までは、rc.localの内容の投稿からすぐに推測が
できたのですが、「じゃぁ何がゾンビに?」は、
実際に動かして試しました。
(telnetdかshellのどちらかだろうということは
推測できますが・・・)

telnetdはinetdによってきちんと回収されていて、
ゾンビになって残っているのはashでした。
つまり、telnetdがash(telnetdが直接起動して
いるのはloginですが)の終了を待たないで(
wait()しないで)終わってしまっているようです。

> # dist の ps は "f" が使えなかったような...

/proc/[pid]/stausで親はわかりますね。
topコマンドでもOK。

ログをとるのに、もう一度やってみました。
rc.localでsleepして実験しているので、
telnetで2つログインしてます。

ログインしている状態:

$ ps
...
  751 root        624 S   inetd
...
 1088 root        656 S   /bin/sh /etc/rc.d/S99rc.local
 1104 root        684 S   /bin/sh /etc/config/rc.local
 1206 root        556 S   sleep 120
 1280 root        584 S   telnetd -l /bin/login
 1281 guest       908 S   -ash
 1293 root        584 S   telnetd -l /bin/login
 1294 guest       824 S   -ash
 1307 guest       776 R   ps

$ cat /proc/1294/status
Name:   ash
State:  S (sleeping)
Tgid:   1294
Pid:    1294
PPid:   1293
...

$ cat /proc/1293/status
Name:   telnetd
State:  S (sleeping)
Tgid:   1293
Pid:    1293
PPid:   751
...

この状態で1294をログアウト

$ ps
...
  751 root        628 S   inetd
...
 1088 root        656 S   /bin/sh /etc/rc.d/S99rc.local
 1104 root        684 S   /bin/sh /etc/config/rc.local
 1206 root        556 S   sleep 120
 1280 root        584 S   telnetd -l /bin/login
 1281 guest       908 S   -ash
 1294 guest           Z   [ash]
 1310 guest       776 R   ps

$ cat /proc/1294/status
Name:   ash
State:  Z (zombie)
Tgid:   1294
Pid:    1294
PPid:   1
...

-- 
なかむら




armadillo メーリングリストの案内