2009年6月4日木曜日

lxc のインストール 3

続き。別ターミナルから
# killall slogin
戻って
# lxc-stop -n tetest
#
[1]+ Exit 137 lxc-execute -n tetest /usr/sbin/sshd
# lxc-execute -n tetest /bin/bash
# /usr/sbin/sshd -dD
....
Server listening on 0.0.0.0 port 22.
また別ターミナル行って
# slogin -v 192.168.1.100
....
debug1: Next authentication method: password
root@192.168.1.100's password:
....
debug1: permanently_set_uid: 0/0
Environment:
LANG=en_US
USER=root
LOGNAME=root
戻ってみると
debug1: Allocating pty.
openpty: No such file or directory
session_pty_req: session 0 alloc failed
....
debug1: session_input_channel_req: session 0 req shell
^CExiting on signal 2
debug1: do_cleanup
# exit
わかる人には、わかるのでしょうが、この後のコンテナで strace したり、デーモン君のソース探検読んだり。で、結果 /dev/pts が マウントされていないため。に気付くに至る....
# lxc-execute -n tetest /bin/bash
# mount -t devpts none /dev/pts
# mount
none on /dev/pts type devpts (rw)
# /usr/sbin/sshd
#
で、別ターミナルから
# slogin 192.168.1.100
root@192.168.1.100's password:
-bash-3.2#
おぉ....。ひとしきり遊んだ後で止めて、更にターミナル戻って # 変なところで試していてごめんなさい
# cat /usr/local/var/lib/lxc/tetest/fstab
/lib /opt/src/lxc/./rootfs.tetest/lib none ro,bind 0 0
/bin /opt/src/lxc/./rootfs.tetest/bin none ro,bind 0 0
/usr /opt/src/lxc/./rootfs.tetest/usr none ro,bind 0 0
/sbin /opt/src/lxc/./rootfs.tetest/sbin none ro,bind 0 0
/opt/src/lxc/rootfs.tetest /usr/local/var/lib/lxc/tetest/rootfs none rbind 0 0
# vi !$
....
# cat /usr/local/var/lib/lxc/tetest/fstab
/lib /opt/src/lxc/./rootfs.tetest/lib none ro,bind 0 0
/bin /opt/src/lxc/./rootfs.tetest/bin none ro,bind 0 0
/usr /opt/src/lxc/./rootfs.tetest/usr none ro,bind 0 0
/sbin /opt/src/lxc/./rootfs.tetest/sbin none ro,bind 0 0
/dev/pts /opt/src/lxc/./rootfs.tetest/dev/pts none bind 0 0
# none /opt/src/lxc/./rootfs.tetest/dev/pts devpts defaults 0 0 も同じようなモン
/opt/src/lxc/rootfs.tetest /usr/local/var/lib/lxc/tetest/rootfs none rbind 0 0
# lxc-execute -n tetest /usr/sbin/sshd &
[1] 30491
で OK なんだけど....
# echo $$
29056
# ls -l /proc/29056/fd/
total 0
lrwx------ 1 root root 64 2009-06-04 22:31 0 -> /dev/pts/1
lrwx------ 1 root root 64 2009-06-04 22:31 1 -> /dev/pts/1
lrwx------ 1 root root 64 2009-06-04 22:31 2 -> /dev/pts/1
lrwx------ 1 root root 64 2009-06-04 22:31 255 -> /dev/pts/1
別ターミナルで
# slogin 192.168.1.100
root@192.168.1.100's password:
-bash-3.2# echo hogehoge > /dev/pts/1
として、ターミナル戻ってみると... がイカンと言うことで newinstance という devpts マウントのオプションができたらしいです。

0 件のコメント: