日期:2014-05-16  浏览次数:20683 次

linux mint 13 没有/etc/inittab 文件
首先,ubuntu自从6.10版本之后就使用了较新的upstart机制来进行系统的初始化。之后都是没有system v启动机制的inittab文件的,但是兼容,也就是说,你可以按照redhat openSUSE那样touch一个 inittab文件,然后修改即可以修改 runlevel。系统会首先搜寻inittab文件,如果不存在,那么将运行在2级别上。所以你可以自己建个inittab文件,或者把相应的telinit 2 改为 telinit X(你想要运行的级别)。mint是基于ubuntu的,所以,你懂的!

ubuntu 6.10之后运行级别与一般linux运行级别稍有不同,如下:

编号        名称/功能
0          关闭系统
1          让系统进入单用户(S,恢复)模式
S          单用户(恢复)模式,文本登录界面,只运行很少几项系统服务
2          多用户模式,图形登录界面,运行所有预定的系统服务
3、4、5     多用户模式,图形登录界面,运行所有预定的系统服务(对于系统定制而言,运行级 别2-5的作用等同)
6          重启系统


用runlevel命令可以查看显示前一个运行级别以及当前运行级别。一般会显示N  2,表示前一个运行级别未知,当前运行级别为2.

默认运行级别
默认情况下,Ubuntu系统引导进入多用户模式(运行级别2)。

telinit
具有root特权身份的用户可以使用实用工具telinit来关闭系统、重启系统,或者在恢复(单用户)模式与多用户模式之间切换。实用工具telinit属于一种迁移工具,用来兼容SysVinit系统。在运行Upstart的系统中,这个实用工具会根据自己的参数发送
某个运行级别事件。telinit命令的格式如下:
telinit runlevel

恢复模式与root口令
当系统进入恢复(单用户)模式的时候,如果尚未将root账号解锁,那么在显示root提示符之前init会要求输入root口令。否则它会显示root提示符,而不要求输入口令。
当系统进入多用户模式的时候,它会显示图形登录界面。

警告:不要直接将运行级别修改为运行级别S 。使用telinit要求系统切换为运行级别1,这会让系统首先进入运行级别1,此时适当的系统进程(运行系统服务)将被杀死,然后自动进入运行级别S。直接将运行级别修改为运行级别S,可以让系统进入运行级别S,而不会首先杀死任何进程。因此,通常最好不要这样做。


切换系统运行级别

方式1:终端输入init 0/1···/6/S,s(系统运行级别号)
方式2:终端输入telinit 0/1··/6/S,s(系统运行级别号)

与初始化运行级别有关的文件

1、/etc/init
    rc.conf  rc-sysinit.conf  rcS.conf
2./etc/init.d
    rc  rc.local  rcS
3./etc
    rcN.d(N=0,1···6,S)
    在/etc下有7个名为rcN.d的目录,对应系统的7个运行级别,rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
    对于以K(kill)开头的文件,系统将终止对应的服务
    对于以S(start)开头的文件,系统将启动对应的服务

系统初始化过程
1.内核启动init
2.init找到/etc/init/rc-sysinit.conf文件,确定默认的runlevel,默认为2,可能被用户自定义的inittab文件的内容所修改(override)
3.运行/etc/init.d/rc
4.运行相应的/etc/rcN.d中的脚本
5./etc/rcN.d/中的脚本按设定的优先级依次启动,运行/etc/init.d/下的相应脚本


如想进一步了解,或详细了解:
在命令行模式输入:
man 8 init;
man 5 init;
即可查询系统给出的manual(手册)信息。


参考文章:
http://v2v12012.blog.51cto.com/5692118/968661
http://book.51cto.com/art/200905/126183.htm