Linux运行级别:
Linux运行级别有七种:
|
|
默认的运行级别在/etc/inittab文件中进行设置。
加载开机启动程序
Linux系统启动确定运行级别后,加载运行级别下的自启动程序。
那么不同运行级别的,自启动程序不同,对应的启动程序目录也不同。如果需要查看3级别用户的启动程序,可以通过/etc/rc3.d 目录来查看。
目录名中的”rc”,表示run command(运行程序),最后的d表示directory(目录)。
下面让我们看看 /etc/rc3.d, 目录中到底指定了哪些程序
|
|
从目录名,我们可以看出,目录均是以“字母K或S+2位数字+程序名”的形式。
字母K表示:kill,从其他运行级别切换到这一级别时,需要关闭的程序。
字母S表示:start,需要启动的程序。
数字表示:表示处理顺序,数字越小,处理得越早。数字相同时,按照程序首字母顺序启动。
前面提到,不同运行级别的,自启动程序不同,对应的启动程序目录也不同。不难想到,如果多个”运行级别”需要启动同一个程序,那么这个程序的启动脚本,就会在每一个目录里都有一个拷贝。
这样会造成管理上的困扰:如果要修改启动脚本,岂不是每个目录都要改一遍?
Linux的解决办法,就是七个 /etc/rcN.d 目录里列出的程序,都设为链接文件,指向另外一个目录 /etc/init.d ,真正的启动脚本都统一放在这个目录中。init进程逐一加载开机启动程序,其实就是运行这个目录里的启动脚本。
|
|
再看看链接指向的init.d文件,发现还是一个链接文件。所以最终的脚本文件在/etc/rc.d/init.d
|
|
链接文件目录:/etc/rcN.d
程序脚本文件目录:/etc/rc.d/init.d
用户自定义脚本:/etc/rc.d/init.d/rc.local
Shell配置文件
Shell的配置文件有如下五个:
他们之间的区别:/etc/profile
这是对所有用户都有效的配置,文件修改后,需要source生效重启;~/.bash_profile
这是对当前用户有效的配置,文件修改后,需要source生效或重启;/etc/bashrc
桌面状态下,打开一个不需要登陆的Shell时调用,对所有用户都有效,文件修改后,重新打开一个Shell就生效;~/.bashrc
桌面状态下,打开一个不需要登陆的Shell时调用,对当前用户有效,文件修改后,重新打开一个Shell就生效;~/.bash_loginout
当每次退出系统(退出bash shell)时,执行该文件。
参考
linux /etc/rc.d/init.d自启动程序说明
Linux系统的启动流程
系统运行级别(/etc/inittab)