84 lines
1.3 KiB
Bash
Executable File
84 lines
1.3 KiB
Bash
Executable File
#! /bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: halt
|
|
# Required-Start:
|
|
# Required-Stop:
|
|
# Default-Start:
|
|
# Default-Stop: 0
|
|
# Short-Description: Execute the halt command.
|
|
# Description:
|
|
### END INIT INFO
|
|
|
|
NETDOWN=yes
|
|
|
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
[ -f /etc/default/halt ] && . /etc/default/halt
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
do_stop () {
|
|
if [ "$INIT_HALT" = "" ]
|
|
then
|
|
case "$HALT" in
|
|
[Pp]*)
|
|
INIT_HALT=POWEROFF
|
|
;;
|
|
[Hh]*)
|
|
INIT_HALT=HALT
|
|
;;
|
|
*)
|
|
INIT_HALT=POWEROFF
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# See if we need to cut the power.
|
|
if [ "$INIT_HALT" = "POWEROFF" ] && [ -x /etc/init.d/ups-monitor ]
|
|
then
|
|
/etc/init.d/ups-monitor poweroff
|
|
fi
|
|
|
|
# Don't shut down drives if we're using RAID.
|
|
hddown="-h"
|
|
if grep -qs '^md.*active' /proc/mdstat
|
|
then
|
|
hddown=""
|
|
fi
|
|
|
|
# If INIT_HALT=HALT don't poweroff.
|
|
poweroff="-p"
|
|
if [ "$INIT_HALT" = "HALT" ]
|
|
then
|
|
poweroff=""
|
|
fi
|
|
|
|
# Make it possible to not shut down network interfaces,
|
|
# needed to use wake-on-lan
|
|
netdown="-i"
|
|
if [ "$NETDOWN" = "no" ]; then
|
|
netdown=""
|
|
fi
|
|
|
|
log_action_msg "Will now halt"
|
|
halt -d -f $netdown $poweroff $hddown
|
|
}
|
|
|
|
case "$1" in
|
|
start|status)
|
|
# No-op
|
|
;;
|
|
restart|reload|force-reload)
|
|
echo "Error: argument '$1' not supported" >&2
|
|
exit 3
|
|
;;
|
|
stop)
|
|
do_stop
|
|
;;
|
|
*)
|
|
echo "Usage: $0 start|stop" >&2
|
|
exit 3
|
|
;;
|
|
esac
|
|
|
|
:
|