-#!/bin/bash -
+#!/bin/sh -
# @configure_input@
# Copyright (C) 2008-2011 Red Hat Inc.
#
# 'virt-what' tries to detect the type of virtualization being
# used (or none at all if we're running on bare-metal). It prints
-# out one of more lines each being a 'fact' about the virtualization.
+# out one or more lines each being a 'fact' about the virtualization.
#
# Please see also the manual page virt-what(1).
# This script should be run as root.
#
# The following resources were useful in writing this script:
-# . http://www.dmo.ca/blog/20080530151107
+# . http://dmo.ca/blog/detecting-virtualization-on-linux/
# Do not allow unset variables, and set defaults.
set -u
VERSION="@VERSION@"
-function fail {
+fail() {
echo "virt-what: $1" >&2
exit 1
}
-function usage {
+usage() {
echo "virt-what [options]"
echo "Options:"
echo " --help Display this help"
done
# Add /sbin and /usr/sbin to the path so we can find system
-# binaries like dmicode.
+# binaries like dmidecode.
# Add /usr/libexec to the path so we can find the helper binary.
prefix=@prefix@
exec_prefix=@exec_prefix@
PATH="${root}@libexecdir@:${root}/sbin:${root}/usr/sbin:${PATH}"
# Check we're running as root.
+EFFUID=$(id -u) || fail "failed to get current user id"
-if [ "x$root" = "x" ] && [ "$EUID" -ne 0 ]; then
+if [ "x$root" = "x" ] && [ "$EFFUID" -ne 0 ]; then
fail "this script must be run as root"
fi
if [ "$cpuid" = "XenVMMXenVMM" ]; then
echo xen; echo xen-hvm
skip_qemu_kvm=true
-elif [ -f "${root}/proc/xen/capabilities" ]; then
+elif [ -d "${root}/proc/xen" ]; then
echo xen
- if grep -q "control_d" "${root}/proc/xen/capabilities"; then
+ if grep -q "control_d" "${root}/proc/xen/capabilities" 2>/dev/null; then
echo xen-dom0
else
echo xen-domU
fi
fi
fi
+
+# Check for Docker.
+if [ -f "${root}/.dockerinit" ]; then
+ echo docker
+fi