Set kmsg to 0 by default

It's now been proven over and over again that the symlink from /dev/kmsg
to /dev/console is harmful for everything but upstart systems. As Ubuntu
is now switching over to systemd too, lets switch the default.

Upstart users wishing to see boot messages can always set lxc.kmsg = 1
manually in their config (so long as they don't expect to then
dist-upgrade the container to systemd succesfuly).

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
Stéphane Graber 2015-01-20 18:40:17 -05:00
parent 124fa0a869
commit d89de2399c
7 changed files with 3 additions and 32 deletions

View File

@ -4,9 +4,6 @@ lxc.include = @LXCTEMPLATECONFIG@/common.conf
# Allow for 6 tty devices by default # Allow for 6 tty devices by default
lxc.tty = 6 lxc.tty = 6
# Disable kmsg
lxc.kmsg = 0
# Set the halt/stop signals # Set the halt/stop signals
lxc.haltsignal=SIGRTMIN+4 lxc.haltsignal=SIGRTMIN+4
lxc.stopsignal=SIGRTMIN+14 lxc.stopsignal=SIGRTMIN+14

View File

@ -674,7 +674,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
<refsect2> <refsect2>
<title>Enable kmsg symlink</title> <title>Enable kmsg symlink</title>
<para> <para>
Enable creating /dev/kmsg as symlink to /dev/console. This defaults to 1. Enable creating /dev/kmsg as symlink to /dev/console. This defaults to 0.
</para> </para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
@ -683,7 +683,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
</term> </term>
<listitem> <listitem>
<para> <para>
Set this to 0 to disable /dev/kmsg symlinking. Set this to 1 to enable /dev/kmsg symlinking.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -2523,7 +2523,7 @@ struct lxc_conf *lxc_conf_init(void)
free(new); free(new);
return NULL; return NULL;
} }
new->kmsg = 1; new->kmsg = 0;
lxc_list_init(&new->cgroup); lxc_list_init(&new->cgroup);
lxc_list_init(&new->network); lxc_list_init(&new->network);
lxc_list_init(&new->mount_list); lxc_list_init(&new->mount_list);

View File

@ -188,12 +188,6 @@ configure_debian_systemd()
path=$1 path=$1
rootfs=$2 rootfs=$2
init="$(chroot ${rootfs} dpkg-query --search /sbin/init | cut -d : -f 1)"
if [ "$init" = "systemd-sysv" ]; then
# only appropriate when systemd is PID 1
echo 'lxc.kmsg = 0' >> "$path/config"
fi
# this only works if we have getty@.service to manipulate # this only works if we have getty@.service to manipulate
if [ -f ${rootfs}/lib/systemd/system/getty\@.service ]; then if [ -f ${rootfs}/lib/systemd/system/getty\@.service ]; then
sed -e 's/^ConditionPathExists=/# ConditionPathExists=/' \ sed -e 's/^ConditionPathExists=/# ConditionPathExists=/' \

View File

@ -1117,12 +1117,6 @@ lxc.include = @LXCTEMPLATECONFIG@/fedora.common.conf
" >> $config_path/config " >> $config_path/config
fi fi
if [ "x$have_systemd" = "x1" ]; then
cat <<EOF >> $config_path/config
lxc.kmsg = 0
EOF
fi
# Append things which require expansion here... # Append things which require expansion here...
cat <<EOF >> $config_path/config cat <<EOF >> $config_path/config
lxc.arch = $arch lxc.arch = $arch
@ -1344,14 +1338,6 @@ if [ -z "$release" ]; then
fi fi
fi fi
# Fedora 15 and above run systemd.We need autodev enabled to keep
# systemd from causing problems.
# Also, kmsg must not be mapped to prevent a 100% cpu loop
# in systemd-journald.
if [ $release -gt 14 ]; then
have_systemd="1"
fi
if [ "$(id -u)" != "0" ]; then if [ "$(id -u)" != "0" ]; then
echo "This script should be run as 'root'" echo "This script should be run as 'root'"
exit 1 exit 1

View File

@ -480,11 +480,6 @@ EOF
echo "lxc.cap.drop = setfcap setpcap" >>$cfg_dir/config echo "lxc.cap.drop = setfcap setpcap" >>$cfg_dir/config
fi fi
# don't create kmsg symlink as it causes journald to use 100% cpu
if [ $container_release_major = "7" ]; then
echo "lxc.kmsg = 0" >>$cfg_dir/config
fi
echo "# Networking" >>$cfg_dir/config echo "# Networking" >>$cfg_dir/config
# see if the network settings were already specified # see if the network settings were already specified
lxc_network_type=`grep '^lxc.network.type' $cfg_dir/config | awk -F'[= \t]+' '{ print $2 }'` lxc_network_type=`grep '^lxc.network.type' $cfg_dir/config | awk -F'[= \t]+' '{ print $2 }'`

View File

@ -129,7 +129,6 @@ copy_configuration()
cat <<EOF >> $path/config cat <<EOF >> $path/config
lxc.utsname = $name lxc.utsname = $name
lxc.pts = 1024 lxc.pts = 1024
lxc.kmsg = 0
lxc.cap.drop = sys_module mac_admin mac_override sys_time lxc.cap.drop = sys_module mac_admin mac_override sys_time
# When using LXC with apparmor, uncomment the next line to run unconfined: # When using LXC with apparmor, uncomment the next line to run unconfined: