#!/bin/sh . /etc/init/rc.conf . INITDIR/rc.lib PATH=/sbin:/bin:/usr/sbin:/usr/bin out "Waiting for services to stop..."; { sv -w196 force-stop /var/service/* sv exit /var/service/* } out "Running pre shutdown hooks..." for file in /etc/init/*.pre.shutdown ; do [ -f "$file" ] && \ out "Running $file" && . "$file" done out "Saving random seed..."; { dd count=1 bs=512 if=/dev/random of=/var/random.seed } out "Sending TERM signal to all processes..."; { killall5 -TERM sleep 1 } out "Sending KILL signal to all processes..."; { killall5 -KILL } out "Unmounting filesystems and disabling swap..." out "Remounting rootfs as readonly"; { swapoff -a umount -rat nosysfs,noproc,nodevtmpfs,notmpfs mount -o remount,ro / sync } out "Deactivating dmcrypt devices (if any exist)."; { [ -x /bin/cryptsetup ] && [ -x /bin/dmsetup ] && { dmsetup ls --target crypt \ --exec "dmsetup info -c --noheadings -o open,name" | while read -r drive; do [ "${drive%%:*}" = "0" ] && cryptsetup close "${drive##*:}" done } } out "Running post shutdown hooks..."; for file in /etc/init/*.post.shutdown ; do [ -f "$file" ] && \ out "Running $file" && . "$file" done