lxc-debian テンプレートで作った Debian コンテナの reboot 問題
なんか reboot の話題ばっかり.どんだけコンテナを reboot するのが好きやねん...
というわけで debian コンテナの話題です.こちらは Ubuntu の問題と違って,おそらくどんなホスト OS 上で実行しても起きる問題な気がします.これは配布物に含まれる lxc-debian テンプレートを使ってコンテナを作った場合の問題です.
# lxc-create -t debian -n squeeze : (snip) # lxc-start -n squeeze -d -o log -l debug # lxc-console -n squeeze Type <Ctrl+a q> to exit the console Debian GNU/Linux 6.0 squeeze tty1 squeeze login: root Password: Last login: Wed Jun 8 09:34:01 UTC 2011 on tty1 Linux squeeze 2.6.32-5-686 #1 SMP Wed May 18 07:08:50 UTC 2011 i686 : (snip) root@squeeze:~# reboot Broadcast message from root@squeeze (tty1) (Wed Jun 8 09:55:56 2011): The system is going down for reboot NOW! root@squeeze:~# root@squeeze:~# lxc-console: Input/output error - failed to read
という風にリブートしても,いつまでもコンテナが稼働したままです.ログは
lxc-start 1307531417.205 DEBUG lxc_utmp - there are 2 tasks running lxc-start 1307531418.205 DEBUG lxc_utmp - there are 2 tasks running
まだプロセスが 2 つ動いていると.
ここで
# lxc-ps --name squeeze CONTAINER PID TTY TIME CMD squeeze 19877 ? 00:00:00 init squeeze 20213 pts/5 00:00:00 sulogin
とやると,おや? "sulogin" が動いてる.ということでコンテナ内の inittab をみるとこんな行が.
# Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin
この行には到達しないはず... と書かれてますが,到達しちゃってるみたいです.とりあえずコレの行を削除 (コメントアウト) すれば,無事リブートします.
根本原因は分かりませんが...