Linux开机启动和登录时各个文件的执行顺序

1、在Linux内核被加载后,第一个运行的程序便是/sbin/init

  该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。其中/etc/inittab文件最主要的作用就是设定Linux的运行等级,比如“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。

2init进程执行rc.sysinit

  在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

3、启动内核模块

  具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。

4、执行不同运行级别的脚本程序

  根据运行级别的不同,系统会运行/etc/rc.d/rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。其中0-6是启动级别。rcX.d中的文件都是软连接执行/etc/rc.d/init.d目录中,rcX.d中的文件名格式为S{number}{name} / K{number}{name},S开始的文件向脚本传递start参数,K开始的文件向脚本传递stop参数,number决定执行的顺序。

5、执行/etc/rc.d/rc.local

  rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

6、执行/bin/login程序,进入登录状态

  此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。

7、执行/etc/profile

  此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

8、执行bash系列命令

  执行 /etc/profile 文件之后,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,不同的系统不一样。执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:
if [ -f ~/.bashrc ] ; then
 . ./bashrc
fi
而在~/.bashrc中,一般还会有以下代码:
if [ -f /etc/bashrc ] ; then
 .  /etc/bashrc
fi
所以,~/.bashrc会调用 /etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。
执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc ->/etc/bashrc -> ~/.bash_logout

 

posted @ 2018-02-05 15:01  技术新高度  阅读(967)  评论(0编辑  收藏  举报