Linux运行等级共有7级:
0:系统直接关机
1:单用户模式
2:和等级3一致,但无NFS服务
3:完整的含有网络功能的纯文本模式
4:系统保留功能
5:与运行等级3类似,但使用X Window
6:系统重启
从上面7级可以看出,大家可以设置运行等级其实只能设置1,2,3,5。0和6我不用解释吧,一旦设置为4,系统会不断的自动关机或自动重启的。
默认情况下,要想修改默认运行等级,要修改/etc/inittab文件。但是Ubuntu系统并没有这个文件。而是需改/etc/init/rc-sysinit.conf这个文件:
description "System V initialisation compatibility"
author "Scott James Remnant <scott@netsplit.com>"
start on filesystem
stop on runlevel
# Default runlevel, this may be overriden on the kernel command-line
# or by faking an old /etc/inittab entry
env DEFAULT_RUNLEVEL=3
# There can be no previous runlevel here, but there might be old
# information in /var/run/utmp that we pick up, and we don't want
# that.
#
# These override that
env RUNLEVEL=
env PREVLEVEL=
task
script
# Check for default runlevel in /etc/inittab
if [ -r /etc/inittab ]
then
eval "$(sed -nre 's/^[^#][^:]*:([0-6sS]):initdefault:.*/DEFAULT_RUNLEVEL="1";/p' /etc/inittab || true)"
fi
# Check kernel command-line for typical arguments
for ARG in $(cat /proc/cmdline)
do
case "${ARG}" in
-b|emergency)
# Emergency shell
[ -n "${FROM_SINGLE_USER_MODE}" ] || sulogin
;;
[0123456sS])
# Override runlevel
DEFAULT_RUNLEVEL="${ARG}"
;;
-s|single)
# Single user mode
[ -n "${FROM_SINGLE_USER_MODE}" ] || DEFAULT_RUNLEVEL=S
;;
esac
done
# Run the system initialisation scripts
[ -n "${FROM_SINGLE_USER_MODE}" ] || /etc/init.d/rcS
# Switch into the default runlevel
telinit "${DEFAULT_RUNLEVEL}"
end script
看到env DEFAULT_RUNLEVEL=3这一行没,对了,这里就是系统默认的运行等级。大家可以通过修改这里的值来达到修改运行等级效果。
查看系统的运行等级:runlevel
切换系统运行等级:init 0~6
我直接将env DEFAULT_RUNLEVEL设置为1,也就是单用户模式进入后,系统竟然在准备进入选择用户的界面卡住不动了。解决方案就是系统重新启动,长按shirt键进入引导加载程序选择界面,选择第一个启动菜单,按e键,然后根据提示好像按ctrl+X使用root进入纯命令模式。将之前修改的值改回到原来的值,重启,ok!
修改引导加载程序默认是修改/boot/grub/menu.lst文件,但是ubuntu9.10没有这个文件,而是修改/boot/grub/grub.cfg这个文件。