#!/bin/sh # $FreeBSD$ # Site-specific closing actions for daemons run by init on shutdown, # or before going single-user from multi-user. # Output and errors are directed to console by init, and the # console is the controlling terminal. stty status '^T' # Set shell to ignore SIGINT (2), but not children; # shell catches SIGQUIT (3) and returns to single user after fsck. trap : 2 trap : 3 # shouldn't be needed HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin export HOME PATH # If there is a global system configuration file, suck it in. # if [ -r /etc/defaults/rc.conf ]; then . /etc/defaults/rc.conf source_rc_confs elif [ -r /etc/rc.conf ]; then . /etc/rc.conf fi # Write some entropy so the rebooting /dev/random can reseed # case ${entropy_file} in [Nn][Oo] | '') ;; *) echo "Writing entropy file." rm -f ${entropy_file} oumask=`umask` umask 077 touch ${entropy_file} && \ dd if=/dev/random of=${entropy_file} \ bs=4096 count=1 2> /dev/null umask ${oumask} ;; esac # Check if /var/db/mounttab is clean. case $1 in reboot) if [ -f /var/db/mounttab ]; then rpc.umntall fi ;; esac echo -n "Shutting down daemon processes:" # for each valid dir in $local_startup, search for init scripts matching *.sh case ${local_startup} in [Nn][Oo] | '') ;; *) for dir in ${local_startup}; do if [ -d "${dir}" ]; then for script in ${dir}/*.sh; do if [ -x "${script}" ]; then (set -T trap 'exit 1' 2 ${script} stop) fi done fi done echo . ;; esac # Insert other shutdown procedures here echo '.' exit 0