由 crazypenguin » 週一 4月 19, 2010 10:27 am
又捣鼓了差不多一通宵。。。
按理说,init 0就是系统的关闭,在/etc/rc0.d/中最后一个运行的就是/etc/init.d/halt脚本,脚本内容:
#! /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)
# 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
:
其中/etc/default/halt里面的内容是
# Default behaviour of shutdown -h / halt. Set to "halt" or "poweroff".
HALT=poweroff
由于没有/etc/init.d/ups-monitor,不知道为何没有ups-monitor,之前都照样正常关机的,那/etc/init.d/halt脚本最后一般就会运行halt -d -f,我不知道这个可不可以关机的......至少目前是无法关机。
而让我庆幸的是,使用halt -d -f -p就可以关机了...