您的位置:首页 > 运维架构 > Shell

ubuntu启动流程及开机执行shell脚本

2012-08-26 21:07 711 查看
Linux系统主要通过以下步骤启动:(参考版本:11.10)

1、读取MBR的信息,启动Boot Manager

2、加载系统内核,启动/sbin/init进程

init进程是Linux的根进程,所有的系统进程都是它的子进程。

3、init进程读取“/etc/inittab”(注:新版本找不到此文件)文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本:

/etc/init.d中存储着可执行脚本文件。/etc/rcS.d和/etc/rcN(0-9)中存储有脚本的链接文件。

通常情况下,“/etc/rcS.d/”目录下的链接文件首先被执行,然后根据运行级别选择N,执行“/etc/rcN.d/”目录下的链接文件。例如您设定的运行级别为3,那么它对应的启动目录为“/etc/rc3.d/”。

链接文件以K/S+两位数字+脚本名字方式命名,S/K代表脚本运行的参数为start/stop,两位数字代表链接文件执行的优先级。

注:此时执行的脚本处于root用户权限下。

注:如需增加自定义开机启动脚本,需要创建脚本,拷贝到/etc/init.d目录下,增加可执行属性,并在对应的运行级别/etc/rcN.d目录下按 SXXScript的方式创建脚本的链接文件。系统还提供了对应的脚本工具update-rc.d帮助快速的建立和删除链接文件。(见附录)

4、根据“/etc/rcS.d/”文件夹中对应的脚本启动Xwindow服务器“xorg”,Xwindow为Linux下的图形用户界面系统。

5、启动登录管理器,等待用户登录

Ubuntu系统默认使用GDM作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。(您可以在“/etc/rc3.d/”文件夹中找到一个名为“S13gdm”的链接)

此时将进入用户权限。

附录:update-rc.d用法

1) 将你的启动脚本复制到/etc/init.d目录下

以下假设你的脚本文件名为test。

2) 设置脚本文件的权限

$ sudo chmod 755 /etc/init.d/test

3) 执行如下命令将脚本放到启动脚本中去:

$ cd /etc/init.d

$ sudo update-rc.d test defaults 95

注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:

update-rc.d: warning: /etc/init.d/test missing LSB informationupdate-rc.d: see

卸载启动脚本的方法:

$ cd /etc/init.d

$ sudo update-rc.d -f test remove

命令输出的信息参考如下:

Removing any system startup links for /etc/init.d/test … /etc/rc0.d/K95test /etc/rc1.d/K95test /etc/rc2.d/S95test /etc/rc3.d/S95test /etc/rc4.d/S95test /etc/rc5.d/S95test /etc/rc6.d/K95test
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: