/etc/init/container-detect.conf is in upstart 1.12.1-0ubuntu4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | description "Track if upstart is running in a container"
start on mounted MOUNTPOINT=/run
env container
env LIBVIRT_LXC_UUID
emits container
emits not-container
pre-start script
# The "standard" way of telling if we are in a container
# is to check for "container" in init's environment.
# The code below is for cases where it's not set.
# Detect old-style libvirt
if [ -z "$container" ]; then
[ -n "$LIBVIRT_LXC_UUID" ] && container=lxc-libvirt
fi
# Detect OpenVZ containers
if [ -z "$container" ]; then
[ -d /proc/vz ] && [ ! -d /proc/bc ] && container=openvz
fi
# Detect Vserver containers
if [ -z "$container" ]; then
VXID="$(cat /proc/self/status | grep ^VxID | cut -f2)" || true
[ "${VXID:-0}" -gt 1 ] && container=vserver
fi
if [ -n "$container" ]; then
echo "$container" > /run/container_type || true
initctl emit --no-wait container CONTAINER=$container
exit 0
fi
# If not a container, stop there
rm -f /run/container_type
initctl emit --no-wait not-container
stop
end script
|