目录

. Linux初始化init系统
. Linux配置文件自动加载过程

1. Linux初始化init系统

Linux初始化init系统在不同操作系统系列下的区别

. RHEL : SysVinit
. RHEL : Upstart
. RHEL : Systemd

RHEL 5.x为例进行学习

RHEL的启动过程按步骤大致可以分为:

. POST加电自检
. BIOS(Boot Sequence)
. 加载对应引导上的MBR(bootloader)
. 主引导设置加载其BootLoader
. 藉由Grub的管理,读取Kernel内核文件(/boot/vmlinuz),解压至主内存,利用内核的功能,进行第二次硬件检测(第一次发生在POST开机自检时)
. 加载Initial RAM Disk(/boot/initrd),使之在内存中解压缩为根目录,kernel藉此完成驱动程序的加载。最终释放虚拟文件系统,并挂载实际的根目录文件系统
. 在核心加载完毕,进行完硬件侦测与驱动程序加载后,内核会启动第一个进程/sbin/init,init进程将会读取/etc/inittab,在/etc/inittab中,大致规定了以下动作:
) 取得 runlevel 亦即默认运行等级的相关等级
) 使用 /etc/rc.d/rc.sysinit 进行系统初始化
) 根据runlevel调用相关启动脚本,以启动相应的系统服务
) 其他一些系统设置,最终完成系统启动

顺序如下

/****自启动脚本执行****/
. /etc/inittab
Linux系统内核会启动整个系统的第一个进程/sbin/init,init进程将会读取/etc/inittab,执行rc.sysinit脚本(注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中)
rc.sysinit脚本作了很多工作:
/*
init $PATH
config network
start swap function
set hostname
check root file system, repair if needed
check root space
....
*/
rc.sysinit根据inittab执行rc?.d脚本(linux是多用户系统) . /etc/rc.lcoal
开机启动程序 . /etc/rc.d/init.d/
所有启动脚本放置在/etc/rc.d/init.d下,rc?.d中放置的是指向init.d中脚本的链接,命名格式是
/*
S{number}{name} S开始的文件向脚本传递start参数
K{number}{name} K开始的文件向脚本传递stop参数
number决定执行的顺序
*/ . /etc/init.d/
各种服务器和程序的二进制文件存放目录 . /etc/rc
) while遍历/etc/rc$runlevel.d/K*,运行默认KILL脚本
) while遍历/etc/rc$runlevel.d/S*,运行默认START服务 . /etc/rc$runlevel.d/
各个启动级别的执行程序连接目录,里头的文件都是指向/etc/init.d/的一些软连接 . /etc/rc.d/rc
根据其参数指定的运行模式(运行级别)来执行相应目录(/etc/rc.d/rc$runlevel.d/)下的脚本
. /etc/rc.d/rc$runlevel.d/
各个启动级别的执行程序连接目录,里头的文件都是指向/etc/rc.d/rc$runlevel.d/的一些软连接 . /etc/rc.d/rc.local
使用者自订开机启动程序
. /etc/rc.d/rc.sysinit
/****自启动脚本执行****/ /****Bash启动脚本执行****/
/etc/profile
~/.bash_profile
/etc/profile 和 ~/.bash_profile 是在启动一个交互登陆shell的时候被调用 /etc/bashrc
~/.bashrc
/etc/bashrc 和 ~/.bashrc 是在一个交互的非登陆shell启动的时候被调用 ~/.bash_logout
在用户注销登陆的时候被读取 一个交互的登陆shell会在 /bin/login 成功登陆之后运行。一个交互的非登陆shell是通过命令行来运行的,如[prompt]$/bin/bash。一般一个非交互的shell出现在运行 shell脚本的时候。之所以叫非交互的shell,是因为它不在命令行上等待输入而只是执行脚本程序
/****Bash启动脚本执行****/

Relevant Link:

http://no001.blog.51cto.com/1142339/411951
http://www.zhihu.com/question/20126189

1. Linux配置文件自动加载过程

Linux下有很多针对全局的、针对单个用户的自启动、环境参数配置文件,它们的顺序关系如下

/****环境变量设置****/
. /etc/profile.d: 放置配置SHELL信息的脚本文件
. /etc/profile
此文件为系统的每个用户设置"环境信息",是一个全局的配置,当用户第一次登录系统时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置,并逐个执行,这种将配置文件切分为"独立脚本模块"的方式提高了Linux系统环境变量配置的灵活性
需要注意的是,/etc/profile中设定的变量(全局)的可以作用于任何用户 . ~/.bashrc:
该文件包含专用于每个用户的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取
~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
. ~/.bash_profile
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件 . /etc/bashrc
用户登录系统后,会打开SHELL终端进行指令操作,Linux为每一个运行Bash Shell的用户执行此文件(任意指令)。当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行/etc/bashrc)
. /etc/csh.cshrc
BSD上CSH的全局配置文件,BSD为每一个运行CShell的用户执行此文件(任意指令)。当CShell被打开时,该文件被读取(即每次新开一个终端,都会执行/etc/csh.cshrc) . ~/.bash_logout
当每次退出系统(退出bash shell)时,执行该文件
/****环境变量设置****/

Relevant Link:

http://huhao1989.iteye.com/blog/1586020
http://blog.csdn.net/ithomer/article/details/6322892
https://wiki.freebsdchina.org/howto/c/config_your_csh

Copyright (c) 2014 LittleHann All rights reserved

Linux Default Bootup、Startup、Autoload Configuration file(自启动服务脚本)的更多相关文章

  1. linux的自启动服务脚本的(/etc/rc.d/init.d或者其链接/etc/init.d)

    转载地址:http://www.cnblogs.com/diyunpeng/archive/2009/11/11/1600886.html Linux有自己一套完整的启动体系,抓住了linux启动的脉 ...

  2. log4j报错ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

    ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only err ...

  3. How to find configuration file MySQL uses?

    http://www.dbasquare.com/2012/04/01/how-to-find-mysql-configuration-file/ A customer called me today ...

  4. How to find configuration file MySQL uses?(转)

    http://www.dbasquare.com/2012/04/01/how-to-find-mysql-configuration-file/ A customer called me today ...

  5. mac 启动php-fpm报错 failed to open configuration file '/private/etc/php-fpm.conf': No such file or direc

    直接运行,有报错找不到配置文件. $ php-fpm [11-Jan-2014 16:03:03] ERROR: failed to open configuration file '/private ...

  6. Creating a PXE Configuration File

      The PXE configuration file defines the menu displayed to the pxe client host as it boots up and co ...

  7. 解决Scala Play框架在Git Bash运行的异常:Could not find configuration file ../framework/sbt/sbt.boot.properties

    Git Bash+ConEmu可以模拟Linux强大的命令行.不过在结合Scala和Play时,需要注意如下事项: 1. Scala的安装在64位操作系统下,默认会放在“C:\Program File ...

  8. springMVC+mybatis 进行单元测试时 main SqlSessionFactoryBean - Parsed configuration file: 'class path resource' 无限的读取xml文件

    今天终于写完的Dao层的操作,怀着无比激动的心情,进行单元测试,就在最后一个方法,对的就是最后一个方法,启动单元测试就会报以下错误: [2016-05-11 18:25:01,691] [WARN ] ...

  9. Nginx - Configuration File Syntax

    Configuration Directives The Nginx configuration file can be described as a list of directives organ ...

随机推荐

  1. nfs客户端报错解决Stale file handle

    NFS故障: 场景:客户端挂载是好的.服务端磁盘满了,重新给挂了一快.客户端df -h nfs挂载消失. 客户端报错:Stale file handle 现象如下: [root@test63-spri ...

  2. Eclipse工作常见问题总结

    一.Eclipse常见快捷键使用 自动完成单词:Alt+/ 重命名:Shift+Alt+r(统一改变字段或方法名) 生成getter/setter方法: Shift+Alt+s,然后r 删除当前行:C ...

  3. FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶部菜单框架

    这是一篇很长的文章,在开始正文之前,请允许我代表目前排名前 20 中唯一的 .Net 开源软件 FineUI 拉下选票: 投票地址: https://code.csdn.net/2013OSSurve ...

  4. web 前端常用组件【01】Pagination 分页

    分页组件几乎是一般网站都会涉及到的组件,网上有很多这样的插件,自己挑来跳去选择了这一款. 官方Demo网址:http://mricle.com/JqueryPagination 功能强大,可扩展性比较 ...

  5. 年中review

    1. 做好已知的各种项目,争取能成立固定团队 (项目一期争取能在本月上线)2. 横向扩展技术学习,了解各种技术,加强技术素养(从Server到前端,现在要关注的知识点越来越多,fighting...) ...

  6. 解决问题:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

    WindowServer2012服务器,添加角色安装完.netframework和iis之后,运行aspx页面就报如下错误: HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法 ...

  7. 支持向量机通俗导论(理解SVM的三层境界)

    原文链接:http://blog.csdn.net/v_july_v/article/details/7624837 作者:July.pluskid :致谢:白石.JerryLead 出处:结构之法算 ...

  8. eclipse的插件安装

    如何安装:http://my.oschina.net/linjunlong/blog/126961 插件安装方法:eclipse和myeclipse版本不一样,略有区别 在线安装: 第一种:知道在线安 ...

  9. android之ViewPager的使用

    XML代码 <android.support.v4.view.ViewPager   ViewPager控件        android:layout_width="wrap_con ...

  10. <诗经>的由来

    <人间词话七讲> 第一讲 那是一个把各地的歌谣都编辑在一起的collection. 而且, 它被编辑的时候有一个目的, 在周朝的时候有采诗之官, 他们采集各地的歌谣, 以观民风, 用来给周 ...