黄文彪 2010年04月24日 星期六 09:07 | 3985次浏览 | 0条评论
突然想研究下在
debian
对开机启动项的管理,于是sudo apt-get install
rcconf
sysv-rc-conf这两个管理
工具
。
rcconf 是提供当前runlevel的启动配置的(sudo runlevel可以查看),debian默认是2(不要跟redhat或者其他系列混淆理解,debian的2-5都是一样的,参 看:http://www.debian.org/doc/manuals/reference/ch-system.zh-cn.html#s- runlevels 的2.4.2 运行级别),也就是说rcconf只会修改你当前用户运行级别的启动项;
而sysv-rc-conf就显得庞大多了(但是它们各自所显示的启动项并不完全相同,rcconf显示的比sysv-rc-conf要多出一些.sh的
脚本
选项
),sysv- rc-conf提供runlevel0-6的启动选项,我会这辈子都记住它们的...因为当我运行sysv-rc-conf时,我想同时参考 rcconf,于是也运行rcconf在另一窗口,参考后先关闭了rcconf,然后在sysv-rc-conf中只修改了runlevel 2的选项,按q退出;然后在sudo sysv-rc-conf查看时,发现runlevel 0与6和S的选项明显发生了变化,关闭了许多本来开启的选项,但是又不记得,胡乱改了改,重启,发现已经不能正常重启,因为runlevel 6肯定被改错了.......总之几经几个小时好多番折腾终于搞定启动和重启,谁知道最后sudo shutdown -h now 或init 0都无法关机,严格来说是变成了重启.......崩溃都来不及,都块天亮了,强制关机睡觉.....
为了保险起见,我开启了vbox中的比较纯的
lenny
,来与本
系统
对 比,算比较安心地完成了修改,开机启动还有一个怪地方:/dev/sda1: Superblock last write time is in the future. FIXED. 并且无法关机未能解决.....已经在irc.freenode.net中的#debian频道和irc.oftc.net的#debian-zh频道寻 求帮助,并且于各大论坛寻求帮助,暂不折腾了,忙毕设去.................
........................................................................................................................时隔不知道多久
对于/dev/sda1: Superblock last write time is in the future. FIXED.这个启动时的现象,应该是该文件的配置出了问题/etc/default/rcS,
TMPTIME=0
SULOGIN=no
DELAYLOGIN=no
UTC=yes #是这里!!!之前可能是误改RCS的启动项后导致这里为no
VERBOSE=no
FSCKFIX=no
RAMRUN=no
RAMLOCK=no
改成yes后,启动时就跟往常一样了。
至于关机问题,一直奇怪当中,在debian的中文邮件列表没啥反应,个人分析如下:
按理说,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,该脚本一般应该运行:halt -d -f -i -p -h(并且直接用这个
命令
确实可以关机)!!!!!!那就是说halt脚本没问题!那为何init 0的效果变成restart呢?????明明init 0最后运行的是halt脚本,那。。。
Zeuux © 2024
京ICP备05028076号
暂时没有评论