[ -r /etc/sysconfig/system ] && . /etc/sysconfig/system
[ -r /etc/sysconfig/bootsplash ] && . /etc/sysconfig/bootsplash
-if [ -z "$VSERVER" -o "$VSERVER" = "detect" ]; then
- {
- while read _f _ctx; do
- [ "$_f" = "VxID:" -o "$_f" = "s_context:" ] && break
- done </proc/self/status
- } 2>/dev/null
- if [ -z "$_ctx" -o "$_ctx" = "0" ]; then
- VSERVER=no
- else
- VSERVER=yes
- fi
- unset _f _ctx
-fi
-
-# VSERVER_ISOLATION_NET = isolation only inside of vserver guests
-if [ -z "$VSERVER_ISOLATION_NET" -o "$VSERVER_ISOLATION_NET" = "detect" ]; then
- VSERVER_ISOLATION_NET=no
- if [ "$VSERVER" = "yes" ]; then
- if [ -f /proc/self/nsproxy ]; then
- # older kernels
- {
- while read _t _data; do
- [ "$_t" = "net:" ] && break
- done < /proc/self/nsproxy
- } 2> /dev/null
- if [ "${_data##*\(}" = "I)" ]; then
- VSERVER_ISOLATION_NET=yes
- fi
- elif [ -f /proc/self/ninfo ]; then
- # newer kernels
- {
- while read _t _data; do
- [ "$_t" = "NCaps:" ] && break
- done < /proc/self/ninfo
- } 2> /dev/null
- if [ "${_t}" = "NCaps:" ]; then
- VSERVER_ISOLATION_NET=yes
- fi
- else
- # assume (very?) old kernel mode
- VSERVER_ISOLATION_NET=yes
- fi
- unset _f _data
- fi
-fi
-
# we need to know in functions if we were called from a terminal
if [ -z "$ISATTY" ]; then
[ -t ] && ISATTY=yes || ISATTY=no
rc_splash() {
local action="$1"
- if ! is_no "$BOOT_SPLASH" && ! is_yes "$VSERVER"; then
+ if ! is_no "$BOOT_SPLASH"; then
[ -x /bin/splash ] && /bin/splash "$action"
fi
# - inside chroot get only those processes, which are inside chroot.
# - don't filter out pids which do not have corresponding running processes (process died etc)
# (note: some processes like named are chrooted but run outside chroot)
-# - do nothing inside vserver
filter_chroot() {
# no pids, exit early
[ $# -eq 0 ] && return
pids=$(filter_ns "$@") && set -- "$pids"
fi
- if is_yes "$VSERVER"; then
- echo $@
- return
- fi
-
if [ $# -lt 1 -o ! -d /proc/1 ]; then
echo $@
return