TenForward

技術ブログ。はてなダイアリーから移転しました

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

この行には到達しないはず... と書かれてますが,到達しちゃってるみたいです.とりあえずコレの行を削除 (コメントアウト) すれば,無事リブートします.

根本原因は分かりませんが...