Date: Fri, 5 Mar 2010 14:34:33 +0000 (UTC) From: Alexander Leidinger <netchild@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r204759 - in head: etc/defaults etc/rc.d share/man/man5 Message-ID: <201003051434.o25EYXBR024375@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: netchild Date: Fri Mar 5 14:34:33 2010 New Revision: 204759 URL: http://svn.freebsd.org/changeset/base/204759 Log: Redirect stdin from /dev/null when starting a jail: At least in RELENG_7 this fixes some start problems for some programs from the ports. It is also more correct, as a jail shall not expect input (interactivity) from the jail-host. Revert the current behavior of starting jails in the background and make it optional only for the start of jails (jail_parallell_start=YES in rc.conf): - The stop can not be done in the background, the system needs to wait until everything is stopped correctly before it can reboot or power down. - The start should not be done in parallel by default, this not only breaks POLA for people comming from RELENG_x, it may also break a dependency chain with other scripts in the jail-host, which need to do some stuff after the jails are up and running (e.g. hardlinking a mysql socket from one jail into another one). Discussed on: freebsd-jails@ Modified: head/etc/defaults/rc.conf head/etc/rc.d/jail head/share/man/man5/rc.conf.5 Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Fri Mar 5 14:13:58 2010 (r204758) +++ head/etc/defaults/rc.conf Fri Mar 5 14:34:33 2010 (r204759) @@ -637,6 +637,7 @@ mixer_enable="YES" # Run the sound mixer ### Jail Configuration ####################################### ############################################################## jail_enable="NO" # Set to NO to disable starting of any jails +jail_parallel_start="NO" # Start jails in the background jail_list="" # Space separated list of names of jails jail_set_hostname_allow="YES" # Allow root user in a jail to change its hostname jail_socket_unixiproute_only="YES" # Route only TCP/IP within a jail Modified: head/etc/rc.d/jail ============================================================================== --- head/etc/rc.d/jail Fri Mar 5 14:13:58 2010 (r204758) +++ head/etc/rc.d/jail Fri Mar 5 14:34:33 2010 (r204759) @@ -636,7 +636,8 @@ jail_start() done eval ${_setfib} jail ${_flags} -i ${_rootdir} ${_hostname} \ - \"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 + \"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 \ + </dev/null if [ "$?" -eq 0 ] ; then _jail_id=$(head -1 ${_tmp_jail}) @@ -728,4 +729,19 @@ fi if [ -n "$*" ]; then jail_list="$*" fi -run_rc_command "${cmd}" & + +# Only allow the parallel start of jails, other commands are not +# safe to execute in parallel. +case "${cmd}" in +*start) + ;; +*) + jail_parallel_start=NO +esac + +if checkyesno jail_parallel_start; then + run_rc_command "${cmd}" & +else + run_rc_command "${cmd}" +fi + Modified: head/share/man/man5/rc.conf.5 ============================================================================== --- head/share/man/man5/rc.conf.5 Fri Mar 5 14:13:58 2010 (r204758) +++ head/share/man/man5/rc.conf.5 Fri Mar 5 14:34:33 2010 (r204759) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 12, 2010 +.Dd March 05, 2010 .Dt RC.CONF 5 .Os .Sh NAME @@ -3497,6 +3497,11 @@ indicates that the highest frequency (le If set to .Dq Li NO , any configured jails will not be started. +.It jail_parallel_start +.Pq Vt bool +If set to +.Dq Li YES +all configured jails will be started in the background (= in parallel). .It Va jail_list .Pq Vt str A space separated list of names for jails.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003051434.o25EYXBR024375>