Skip to content

Commit

Permalink
Support SIGPWR in Fedora and Centos containers.
Browse files Browse the repository at this point in the history
Added code to catch SIGPWR for Upstart in Fedora and CentOS
containers as well as for Systemd in Fedora containers.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
  • Loading branch information
mhwarfield authored and stgraber committed Mar 23, 2014
1 parent f5067ec commit 779b47f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
12 changes: 12 additions & 0 deletions templates/lxc-centos.in
Expand Up @@ -363,6 +363,18 @@ configure_centos_init()
chroot ${rootfs_path} chkconfig udev-post off
fi
chroot ${rootfs_path} chkconfig network on

if [ -d ${rootfs_path}/etc/init ]
then
# This is to make upstart honor SIGPWR
cat <<EOF >${rootfs_path}/etc/init/power-status-changed.conf
# power-status-changed - shutdown on SIGPWR
#
start on power-status-changed
exec /sbin/shutdown -h now "SIGPWR received"
EOF
fi
}

download_centos()
Expand Down
15 changes: 15 additions & 0 deletions templates/lxc-fedora.in
Expand Up @@ -339,6 +339,19 @@ configure_fedora_init()
sed -i 's/^.*dev.pts.*$/#\0/' ${rootfs_path}/etc/rc.d/rc.sysinit
chroot ${rootfs_path} chkconfig udev-post off
chroot ${rootfs_path} chkconfig network on

if [ -d ${rootfs_path}/etc/init ]
then
# This is to make upstart honor SIGPWR. Should do no harm
# on systemd systems and some systems may have both.
cat <<EOF >${rootfs_path}/etc/init/power-status-changed.conf
# power-status-changed - shutdown on SIGPWR
#
start on power-status-changed
exec /sbin/shutdown -h now "SIGPWR received"
EOF
fi
}

configure_fedora_systemd()
Expand All @@ -348,6 +361,8 @@ configure_fedora_systemd()
chroot ${rootfs_path} ln -s /dev/null /etc/systemd/system/udev.service
chroot ${rootfs_path} ln -s /dev/null /etc/systemd/system/systemd-journald.service
chroot ${rootfs_path} ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
# Make systemd honor SIGPWR
chroot ${rootfs_path} ln -s /usr/lib/systemd/system/halt.target /etc/systemd/system/
#dependency on a device unit fails it specially that we disabled udev
# sed -i 's/After=dev-%i.device/After=/' ${rootfs_path}/lib/systemd/system/getty\@.service
#
Expand Down

0 comments on commit 779b47f

Please sign in to comment.