hito
hitoh****@gmail*****
2008年 6月 9日 (月) 19:09:08 JST
ぜんぜん時間がない生き物ですこんばんは。 On Sat, 7 Jun 2008 13:14:28 +0900, <from-****@I-lov*****> wrote: > Linux において PID が 1 のプロセスは /sbin/init です。 > /sbin/init には PID = 1 として起動されると /dev/initctl というパイプを > オープンするという性質があります。それに対し、 /sbin/init が PID != 1 として > 起動されると /dev/initctl にメッセージを書き込むことにより、 PID = 1 として > 動作している /sbin/init に処理を行ってもらうようになっています。 イヤな予感がしたので、ちょっと試してみました。環境はUbuntu 8.04です。 $ lsb_release -d ; uname -a Description: Ubuntu 8.04 Linux beryl 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux $ sudo ls -l /proc/1/fd/ 合計 0 lrwx------ 1 root root 64 2008-06-09 18:50 0 -> /dev/console (deleted) lrwx------ 1 root root 64 2008-06-09 18:50 1 -> /dev/console (deleted) lrwx------ 1 root root 64 2008-06-09 18:50 2 -> /dev/console (deleted) lr-x------ 1 root root 64 2008-06-09 18:50 3 -> pipe:[6073] l-wx------ 1 root root 64 2008-06-09 18:50 4 -> pipe:[6073] lrwx------ 1 root root 64 2008-06-09 18:50 5 -> socket:[6074] lr-x------ 1 root root 64 2008-06-09 18:50 6 -> /inotify えっと。どうしましょうか。orz 最近、init捨てましょうキャンペーンが各所で行われていて、代替initに 置き換えが進んでいるわけですが、この結果から考えると、代替init君 たちはこの挙動をエミュレートしてくれてなさげです。 少なくとも現状、Ubuntu 6.10以降とFedora9ではinitがUpstartになって いて、この実装だとバグった動作をするので、他の方法を考えないと ダメそうです。