mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-06 17:18:32 +00:00
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@
This commit is contained in:
parent
34ae843479
commit
333fb1c996
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=204759
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 (less power savings) should be used.
|
|||
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.
|
||||
|
|
Loading…
Reference in a new issue