diff options
Diffstat (limited to 'source/ap/lxc/scripts/rc.6.lxc')
-rw-r--r-- | source/ap/lxc/scripts/rc.6.lxc | 329 |
1 files changed, 0 insertions, 329 deletions
diff --git a/source/ap/lxc/scripts/rc.6.lxc b/source/ap/lxc/scripts/rc.6.lxc deleted file mode 100644 index 73923da9..00000000 --- a/source/ap/lxc/scripts/rc.6.lxc +++ /dev/null @@ -1,329 +0,0 @@ -#! /bin/sh -# -# rc.6 This file is executed by init when it goes into runlevel -# 0 (halt) or runlevel 6 (reboot). It kills all processes, -# unmounts file systems and then either halts or reboots. -# -# Version: @(#)/etc/rc.d/rc.6 2.47 Sat Jan 13 13:37:26 PST 2001 -# -# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org> -# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com> -# - -# Set the path. -PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin - -# Set $container variable since this is a modified version of rc.6 with -# changes for running in an lxc container. A check to see if this variable -# is set will be used to skip parts of the script that we don't want to run -# in a container. Thanks to Matteo Bernardini <ponce@slackbuilds.org> and -# Chris Willing for the initial work making this script lxc compatible. -container="lxc" - -# If there are SystemV init scripts for this runlevel, run them. -if [ -x /etc/rc.d/rc.sysvinit ]; then - /etc/rc.d/rc.sysvinit -fi - -# Set linefeed mode to avoid staircase effect. -/bin/stty onlcr - -echo "Running shutdown script $0:" - -# Find out how we were called. -case "$0" in - *0) - shutdown_command="halt" - ;; - *6) - shutdown_command=reboot - ;; - *) - echo "$0: call me as \"rc.0\" or \"rc.6\" please!" - exit 1 - ;; -esac - -# Restart init. This prevents init from hanging on to file handles for removed -# glibc shared libraries in the case that those were upgraded or reinstalled. -/sbin/telinit u - -# Save the system time to the hardware clock using hwclock --systohc. -# This will also create or update the timestamps in /etc/adjtime. -if [ -x /sbin/hwclock -a -z "$container" ]; then - # Check for a broken motherboard RTC clock (where ioports for rtc are - # unknown) to prevent hwclock causing a hang: - if ! grep -q " : rtc" /proc/ioports ; then - CLOCK_OPT="--directisa" - fi - if [ /etc/adjtime -nt /etc/hardwareclock ]; then - if grep -q "^LOCAL" /etc/adjtime ; then - echo "Saving system time to the hardware clock (localtime)." - else - echo "Saving system time to the hardware clock (UTC)." - fi - /sbin/hwclock $CLOCK_OPT --systohc - elif grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then - echo "Saving system time to the hardware clock (UTC)." - if [ ! -r /etc/adjtime ]; then - echo "Creating system time correction file /etc/adjtime." - fi - /sbin/hwclock $CLOCK_OPT --utc --systohc - else - echo "Saving system time to the hardware clock (localtime)." - if [ ! -r /etc/adjtime ]; then - echo "Creating system time correction file /etc/adjtime." - fi - /sbin/hwclock $CLOCK_OPT --localtime --systohc - fi -fi - -# Run any local shutdown scripts: -if [ -x /etc/rc.d/rc.local_shutdown ]; then - /etc/rc.d/rc.local_shutdown stop -fi - -# Stop the Apache web server: -if [ -x /etc/rc.d/rc.httpd ]; then - /etc/rc.d/rc.httpd stop -fi - -# Stop the MySQL database: -if [ -x /etc/rc.d/rc.mysqld -a -r /var/run/mysql/mysql.pid ]; then - /etc/rc.d/rc.mysqld stop -fi - -# Stop the Samba server: -if [ -x /etc/rc.d/rc.samba ]; then - /etc/rc.d/rc.samba stop -fi - -# Shut down the NFS server: -if [ -x /etc/rc.d/rc.nfsd ]; then - /etc/rc.d/rc.nfsd stop -fi - -# Shut down the SSH server: -if [ -x /etc/rc.d/rc.sshd ]; then - /etc/rc.d/rc.sshd stop -fi - -# Shut down the SASL authentication daemon: -if [ -x /etc/rc.d/rc.saslauthd ]; then - /etc/rc.d/rc.saslauthd stop -fi - -# Shut down OpenLDAP: -if [ -x /etc/rc.d/rc.openldap ]; then - /etc/rc.d/rc.openldap stop -fi - -# Stop the haveged entropy daemon: -if [ -x /etc/rc.d/rc.haveged -a -z "$container" ]; then - /etc/rc.d/rc.haveged stop -fi - -# Stop D-Bus: -if [ -x /etc/rc.d/rc.messagebus ]; then - /etc/rc.d/rc.messagebus stop -fi - -# Kill any processes (typically gam) that would otherwise prevent -# unmounting NFS volumes: -unset FUSER_DELAY -for dir in $(/bin/mount | grep 'type nfs ' | sed -e 's|.* on ||g' | cut -d ' ' -f 1) ; do - echo "Killing processes holding NFS mount $dir open..." - # Background this to prevent fuser from also blocking shutdown: - /usr/bin/fuser -k -M -m "$dir" & - FUSER_DELAY=5 -done -# If fuser was run, let it have some delay: -if [ ! -z "$FUSER_DELAY" ]; then - sleep $FUSER_DELAY -fi - -# Unmount any NFS, SMB, or CIFS filesystems: -echo "Unmounting remote filesystems:" -/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g" - -# Try to shut down pppd: -PS="$(ps ax)" -if echo "$PS" | /bin/grep -q -w pppd ; then - if [ -x /usr/sbin/ppp-off ]; then - /usr/sbin/ppp-off - fi -fi - -# Shut down YP services: -if [ -x /etc/rc.d/rc.yp ]; then - if grep -wq stop /etc/rc.d/rc.yp ; then - /etc/rc.d/rc.yp stop - fi -fi - -# Bring down the networking system, but first make sure that this -# isn't a diskless client with the / partition mounted via NFS: -if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then - if [ -x /etc/rc.d/rc.inet1 ]; then - /etc/rc.d/rc.inet1 stop - fi -fi - -# In case dhcpcd might have been manually started on the command line, -# look for the .pid file, and shut dhcpcd down if it's found: -if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then - /sbin/dhcpcd -k 1> /dev/null 2> /dev/null - # A little time for /etc/resolv.conf and/or other files to - # restore themselves. - sleep 2 -fi - -# Shut down PCMCIA devices: -if [ -x /etc/rc.d/rc.pcmcia -a -z "$container" ]; then - /etc/rc.d/rc.pcmcia stop - # The cards might need a little extra time here to deactivate: - /bin/sleep 5 -fi - -# Turn off process accounting: -if [ -x /sbin/accton -a -r /var/log/pacct ]; then - /sbin/accton off -fi - -# Terminate acpid before syslog: -if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid -a -z "$container" ]; then # quit - /etc/rc.d/rc.acpid stop -fi - -# Stop udev: -if [ -x /etc/rc.d/rc.udev -a -z "$container" ]; then - /etc/rc.d/rc.udev force-stop -fi - -# Kill all remaining processes. -OMITPIDS="$(for p in $(pgrep mdmon); do echo -o $p; done)" # Don't kill mdmon -if [ ! "$1" = "fast" ]; then - echo "Sending all processes the SIGTERM signal." - /sbin/killall5 -15 $OMITPIDS - /bin/sleep 5 - echo "Sending all processes the SIGKILL signal." - /sbin/killall5 -9 $OMITPIDS -fi - -# Try to turn off quota. -if /bin/grep -q quota /etc/fstab ; then - if [ -x /sbin/quotaoff -a -z "$container" ]; then - echo "Turning off filesystem quotas." - /sbin/quotaoff -a - fi -fi - -# Carry a random seed between reboots. -echo "Saving random seed from /dev/urandom in /etc/random-seed." -# Use the pool size from /proc, or 4096 bits: -if [ -r /proc/sys/kernel/random/poolsize ]; then - /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(expr $(cat /proc/sys/kernel/random/poolsize) / 8) 2> /dev/null -else - /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null -fi -/bin/chmod 600 /etc/random-seed - -# Before unmounting file systems write a reboot or halt record to wtmp. -$shutdown_command -w - -# Turn off swap: -if [ -z "$container" ]; then - echo "Turning off swap." - /sbin/swapoff -a - /bin/sync -fi - -# Stop cgmanager and cgproxy: -if [ -x /etc/rc.d/rc.cgmanager -a -z "$container" ]; then - /etc/rc.d/rc.cgmanager stop -fi - -if [ -z "$container" ]; then - echo "Unmounting local file systems:" - /bin/umount -v -a -t no,proc,sysfs,devtmpfs,fuse.gvfsd-fuse,tmpfs - # JFS needs a sync here or the / partition cannot be remounted read-only. - # In spite of this, it seems that a JFS root partition will always be checked - # (and found to be clean) at boot: - /bin/sync - echo "Remounting root filesystem read-only:" - /bin/mount -v -n -o remount,ro / -fi - -# This never hurts: -/bin/sync - -# Close any volumes opened by cryptsetup: -if [ -f /etc/crypttab -a -x /sbin/cryptsetup ]; then - cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do - # NOTE: we only support LUKS formatted volumes (except for swap)! - LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ') - DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ') - OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ') - if /sbin/cryptsetup isLuks $DEV 2>/dev/null ; then - echo "Locking LUKS crypt volume '${LUKS}':" - /sbin/cryptsetup luksClose ${LUKS} - elif echo $OPTS | grep -wq swap ; then - # If any of the volumes was used as encrypted swap, - # then run mkswap on the underlying device - - # in case other Linux installations on this computer should use it: - echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:" - /sbin/cryptsetup remove ${LUKS} - mkswap $DEV - fi - done -fi - -# Deactivate LVM volume groups: -if [ -z "$container" ]; then - if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then - echo "Deactivating LVM volume groups:" - /sbin/vgchange -an - fi -fi - -# This never hurts again (especially since root-on-LVM always fails -# to deactivate the / logical volume... but at least it was -# remounted as read-only first) -/bin/sync - -# sleep 3 fixes problems with some hard drives that don't -# otherwise finish syncing before reboot or poweroff -/bin/sleep 3 - -# This is to ensure all processes have completed on SMP machines: -wait - -if [ -x /sbin/genpowerd -a -z "$container" ]; then - # See if this is a powerfail situation: - if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then - # Signal UPS to shut off the inverter: - /sbin/genpowerd -k - if [ ! $? = 0 ]; then - echo - echo "There was an error signaling the UPS." - echo "Perhaps you need to edit /etc/genpowerd.conf to configure" - echo "the serial line and UPS type." - # Wasting 15 seconds of precious power: - /bin/sleep 15 - fi - fi -fi - -if [ "$container" = "lxc" ]; then - # confirm successful shutdown of the container - echo "LXC container stopped." -fi - -# Now halt (poweroff with APM or ACPI enabled kernels) or reboot. -if [ "$shutdown_command" = "reboot" ]; then - echo "Rebooting." - /sbin/reboot -else - /sbin/poweroff -fi - |