You are not logged in.

#1 2011-02-25 01:55:48

Haptic
Member
Registered: 2009-09-03
Posts: 149

[SOLVED]rc.shutdown changed?

I was just browsing through files when I saw that rc.shutdown all of the sudden got so different from a backup vim made. What update would have changed it?

new:

#!/bin/bash
#
# /etc/rc.shutdown
#

. /etc/rc.conf
. /etc/rc.d/functions

run_hook shutdown_start

# avoid staircase effect
/bin/stty onlcr

echo " "
printhl "Initiating Shutdown..."
echo " "

# avoid NIS hanging syslog-ng on shutdown by unsetting the domainname
[[ -x /bin/domainname ]] && /bin/domainname ""
[[ -x /etc/rc.local.shutdown ]] && /etc/rc.local.shutdown

kill_everything shutdown

stat_busy "Saving Random Seed"
RANDOM_SEED=/var/lib/misc/random-seed
[[ -d ${RANDOM_SEED%/*} ]] || mkdir -p ${RANDOM_SEED%/*}
: > $RANDOM_SEED
/bin/chmod 0600 $RANDOM_SEED
POOL_FILE=/proc/sys/kernel/random/poolsize
if [[ -r $POOL_FILE ]]; then
    read POOL_SIZE <$POOL_FILE
else
    POOL_SIZE=512
fi
/bin/dd if=/dev/urandom of=$RANDOM_SEED count=1 bs=$POOL_SIZE &> /dev/null
stat_done

stat_busy "Saving System Clock"
if [[ $TIMEZONE && -e /usr/share/zoneinfo/$TIMEZONE ]]; then
    /bin/rm -f /etc/localtime
    /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
fi

HWCLOCK_PARAMS="--systohc"
case $HARDWARECLOCK in
    UTC) HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc";;
    localtime) HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime";;
    *) HWCLOCK_PARAMS="";;
esac
[[ $HWCLOCK_PARAMS ]] && /sbin/hwclock $HWCLOCK_PARAMS
stat_done

# removing psmouse module to fix some reboot issues on newer laptops
/sbin/modprobe -r psmouse >/dev/null 2>&1

# Write to wtmp file before unmounting
/sbin/halt -w

stat_busy "Deactivating Swap"
/sbin/swapoff -a
stat_done

# stop monitoring of lvm2 groups before unmounting filesystems
if [[ $USELVM =~ yes|YES && -x /sbin/lvm && -d /sys/block ]]; then
    stat_busy "Deactivating monitoring of LVM2 groups"
    /sbin/vgchange --monitor n >/dev/null 2>&1
    stat_done
fi

stat_busy "Unmounting Filesystems"
/bin/umount -a -r -t noramfs,notmpfs,nosysfs,noproc,nodevtmpfs -O no_netdev
stat_done

# Kill non-root encrypted partition mappings
if [[ -f /etc/crypttab && $CS ]]; then
    stat_busy "Deactivating encrypted volumes:"
    do_lock() {
            stat_append "${1}.."
            if $CS remove "$1" >/dev/null 2>&1; then
                stat_append "ok "
        else
                stat_append "failed "
        fi
        }
        read_crypttab do_lock
    stat_done
fi

if [[ $USELVM =~ yes|YES && -x /sbin/lvm && -d /sys/block ]]; then
    stat_busy "Deactivating LVM2 groups"
    /sbin/vgchange --sysinit -a n >/dev/null 2>&1
    stat_done
fi

stat_busy "Remounting Root Filesystem Read-only"
/bin/mount -n -o remount,ro /
stat_done

run_hook shutdown_poweroff

# Power off or reboot
printsep
if [[ $RUNLEVEL = 0 ]]; then
    printhl "${C_H2}POWER OFF"
    /sbin/poweroff -d -f -h -i
else
    printhl "${C_H2}REBOOTING"
    # if kexec is installed and a kernel is loaded, use it
    [[ -x /sbin/kexec ]] && /sbin/kexec -e > /dev/null 2>&1
    /sbin/reboot -d -f -i
fi

# End of file
# vim: set ts=2 sw=2 noet:

backup:

#!/bin/bash
#
# /etc/rc.shutdown
#

. /etc/rc.conf
. /etc/rc.d/functions

run_hook shutdown_start

# avoid staircase effect
/bin/stty onlcr

echo " "
printhl "Initiating Shutdown..."
echo " "

# avoid NIS hanging syslog-ng on shutdown by unsetting the domainname
if [ -x /bin/domainname ]; then
    /bin/domainname ""
fi

if [ -x /etc/rc.local.shutdown ]; then
    /etc/rc.local.shutdown
fi

# Find daemons NOT in the DAEMONS array. Shut these down first
if [ -d /var/run/daemons ]; then
    for daemon in $(/bin/ls -1t /var/run/daemons); do
        if ! in_array $daemon ${DAEMONS[@]}; then
            stop_daemon $daemon
        fi
    done
fi
# Shutdown daemons in reverse order
let i=${#DAEMONS[@]}-1
while [ $i -ge 0 ]; do
    if [ "${DAEMONS[$i]:0:1}" != '!' ]; then
        ck_daemon ${DAEMONS[$i]#@} || stop_daemon ${DAEMONS[$i]#@}
    fi
    let i=i-1
done

# Terminate all processes
stat_busy "Sending SIGTERM To Processes"
run_hook shutdown_prekillall
/sbin/killall5 -15 &> /dev/null
/bin/sleep 2
stat_done

stat_busy "Sending SIGKILL To Processes"
/sbin/killall5 -9 &> /dev/null
/bin/sleep 1
stat_done

run_hook shutdown_postkillall

stat_busy "Saving Random Seed"
RANDOM_SEED=/var/lib/misc/random-seed
[ -d $(dirname $RANDOM_SEED) ] || mkdir -p $(dirname $RANDOM_SEED)
: > $RANDOM_SEED
/bin/chmod 0600 $RANDOM_SEED
POOL_FILE=/proc/sys/kernel/random/poolsize
if [ -r $POOL_FILE ]; then
    POOL_SIZE=$(/bin/cat $POOL_FILE)
else
    POOL_SIZE=512
fi
/bin/dd if=/dev/urandom of=$RANDOM_SEED count=1 bs=$POOL_SIZE &> /dev/null
stat_done

stat_busy "Saving System Clock"
if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
    /bin/rm -f /etc/localtime
    /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
fi

HWCLOCK_PARAMS="--systohc"
if [ "$HARDWARECLOCK" = "UTC" ]; then
    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
elif [ "$HARDWARECLOCK" = "localtime" ]; then
    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
else
    HWCLOCK_PARAMS=""
fi
if [ -n "$HWCLOCK_PARAMS" ]; then
    /sbin/hwclock $HWCLOCK_PARAMS
fi
stat_done

# removing psmouse module to fix some reboot issues on newer laptops
/sbin/modprobe -r psmouse >/dev/null 2>&1

# Write to wtmp file before unmounting
/sbin/halt -w

stat_busy "Deactivating Swap"
/sbin/swapoff -a
stat_done

stat_busy "Unmounting Filesystems"
/bin/umount -a -r -t noramfs,notmpfs,nosysfs,noproc,nodevtmpfs -O no_netdev
stat_done

# Kill non-root encrypted partition mappings
if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then
    stat_busy "Deactivating encrypted volumes:"
    # Arch cryptsetup packages traditionally contained the binaries
    #  /usr/sbin/cryptsetup
    #  /sbin/cryptsetup.static
    # By default, initscripts used the /sbin/cryptsetup.static.
    # Newer packages will only have /sbin/cryptsetup and no static binary
    # This ensures maximal compatibility with the old and new layout
    if [ -x /sbin/cryptsetup ]; then
        CS=/sbin/cryptsetup
    elif [ -x /usr/sbin/cryptsetup ]; then
        CS=/usr/sbin/cryptsetup
    else
        CS=/sbin/cryptsetup.static
    fi
    do_uncrypt() {
        if [ $# -ge 3 ]; then
            if [ -b /dev/mapper/$1 ] ;then
                stat_append "${1}.."
                $CS remove $1 >/dev/null 2>&1
                if [ $? -ne 0 ]; then
                    stat_append "failed "
                else
                    stat_append "ok "
                fi
            fi
        fi
    }
    while read line; do
        eval do_uncrypt "$line"
    done </etc/crypttab
    stat_done
fi

if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
    if [ -x /sbin/lvm -a -d /sys/block ]; then
        stat_busy "Deactivating LVM2 groups"
        /sbin/lvm vgchange --ignorelockingfailure -an >/dev/null 2>&1
        stat_done
    fi
fi

stat_busy "Remounting Root Filesystem Read-only"
/bin/mount -n -o remount,ro /
stat_done

run_hook shutdown_poweroff

# Power off or reboot
if [ "$RUNLEVEL" = "0" ]; then
    printsep
    printhl "${C_H2}POWER OFF"
    /sbin/poweroff -d -f -h -i
else
    printsep
    printhl "${C_H2}REBOOTING"
    # if kexec is installed and a kernel is loaded, use it
    [ -x /sbin/kexec ] && /sbin/kexec -e > /dev/null 2>&1
    /sbin/reboot -d -f -i
fi

# End of file
# vim: set ts=2 sw=2 noet:

Last edited by Haptic (2011-02-25 04:57:10)

Offline

#2 2011-02-25 02:08:57

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: [SOLVED]rc.shutdown changed?

All the info you need is here and here. arch-commits mailing list would also be helpful.

Offline

Board footer

Powered by FluxBB