• Linux Default Bootup、Startup、Autoload Configuration file(自启动服务脚本)


    目录

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

    1. Linux初始化init系统

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

    1. RHEL 5: SysVinit
    2. RHEL 6: Upstart
    3. RHEL 7: Systemd

    RHEL 5.x为例进行学习

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

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

    顺序如下

    /****自启动脚本执行****/
    1. /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是多用户系统)
    
    2. /etc/rc.lcoal
    开机启动程序 
    
    3. /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决定执行的顺序
    */
    
    4. /etc/init.d/
    各种服务器和程序的二进制文件存放目录
    
    5. /etc/rc
        1) while遍历/etc/rc$runlevel.d/K*,运行默认KILL脚本
        2) while遍历/etc/rc$runlevel.d/S*,运行默认START服务
    
    6. /etc/rc$runlevel.d/
    各个启动级别的执行程序连接目录,里头的文件都是指向/etc/init.d/的一些软连接
    
    7. /etc/rc.d/rc
    根据其参数指定的运行模式(运行级别)来执行相应目录(/etc/rc.d/rc$runlevel.d/)下的脚本
    8. /etc/rc.d/rc$runlevel.d/
    各个启动级别的执行程序连接目录,里头的文件都是指向/etc/rc.d/rc$runlevel.d/的一些软连接
    
    9. /etc/rc.d/rc.local
    使用者自订开机启动程序
    10. /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下有很多针对全局的、针对单个用户的自启动、环境参数配置文件,它们的顺序关系如下

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

  • 相关阅读:
    kafka报错:Invalid message size: 0
    转载:elastic5.x部署常见问题总结
    hadoop集群zookeeper迁移
    生产环境轻量级dns服务器dnsmasq搭建文档
    (3)安装elastic6.1.3及插件kibana,x-pack,essql,head,bigdesk,cerebro,ik
    (2)安装elastic6.1.3及插件kibana,x-pack,essql,head,bigdesk,cerebro,ik
    (1)安装elastic6.1.3及插件kibana,x-pack,essql,head,bigdesk,cerebro,ik
    换种思路解决日志占用磁盘空间问题
    更改hadoop集群yarn的webui中的开始时间和结束时间为本地时间
    两种虚拟机扩容方式扩容后在线生效的方法
  • 原文地址:https://www.cnblogs.com/LittleHann/p/4321791.html
Copyright © 2020-2023  润新知