##language:zh -- hd [<>] <> = jail十全大补丸 = 只是简单的使用jail会发现许多的不方便,哪么bsder们很早就给你准备了一堆增强工具,让jail的应用更加灵活。从而极大的提高了jail应用的方便程度。 == jailer == 使用jailer可以让你更好的管理vhost。使用方法是在安装好后的vhost中安装jailer: {{{ cd /usr/ports/sysutil/jailer make install make clean }}} 这样在你的vhost中就有了{{{/usr/local/sbin/jailer}}}应用程序。 启动vhost的脚本由 {{{ jail path hostname ip-number /bin/sh /etc/rc }}} 变为 {{{ jail path hostname ip-number /usr/local/sbin/jailer }}} 这样就可以发现在启动的进程中有一个jailer的进程,你可以用kill来重启和关闭一个jail的vhost了。 == jailutils == 使用了jailer后管理jail还是比较麻烦,jailutils帮助你更简单的在host中管理vhost。这里需要注意,jailer是运行在vhost中的,而jailutils是运行在host中的。 在host中安装jailutils: {{{ cd /usr/ports/sysutils/jailutils make install make clean }}} 安装后你可以使用jstart来启动一个vhost了(这是使用jailer来启动): {{{ jstart path hostname ip-number /usr/local/sbin/jailer }}} 可以通过jails工具查看现在运行了哪些vhost: {{{ jails mailtest.huandong.com zxtest.huandong.com fxhtest.huandong.com devtest.huandong.com }}} 这时你就可以通过killjail来停止一个vhost: {{{ killjail devtest.huangdong.com }}} 是不是很简单呢? == vhost中ports的共享 == 在安装后的vhost中如果不能使用ports是一个非常沮丧的事,而给每个vhost装一份ports更是资源的不充分利用。我使用mount_null来解决这个问题。 我在host中建立了一个目录{{{/data/sys/ports}}},放所有vhost以及host所使用的ports目录放在里边。为了能让vhost使用这个目录,我们需要使用mount_null来连接到vhost中去,使用ln会让vhost找不着这个目录的: {{{ mount_null /data/sys/ports /data/vhost/mailtest/usr/ports }}}