bootdefault和configuration_Linux Default Bootup、Startup、Autoload Configuration file(自启动服务脚本)...

目录

. 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的自启动服务脚本的(/etc/rc.d/init.d或者其链接/etc/init.d)

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

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 ...

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 ...

Creating a PXE Configuration File

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

Nginx - Configuration File Syntax

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

随机推荐

2014多校第一场 E 题 || HDU 4865 Peter's Hobby (DP)

题目链接 题意 : 给你两个表格,第一个表格是三种天气下出现四种湿度的可能性.第二个表格是,昨天出现的三种天气下,今天出现三种天气的可能性.然后给你这几天的湿度,告诉你第一天出现三种天气的可能性,让你 ...

Nlog 配置总结

Writes log messages to one or more files. Since NLog 4.3 the ${basedir} isn't needed anymore for rel ...

Python运维开发基础-概述-hello world

Hello World 任何一门计算机语言几乎都是从hello world开始的,为了遵从这一优秀的传统习惯,我们也从打印hello world开始. linux系统进入Python环境,直接打Pyt ...

SQL Server 2008 下载及版本说明

一.下载地址 SQL Server 2008 R2 Enterprise下载地址来源网络整理:MSDN网址,参考: 选中下面链接,放在迅雷中即可下载: ed2k://|file|cn_sql_serv ...

ZMQ示例:使用 curve 进行加密通信

1. ZMQ 官方文档 ZMQ 的官方文档中关于 curve 的介绍如下: Client and server roles A socket using CURVE can be either cli ...

Win10系列:UWP界面布局进阶3

与以往的Windows操作系统不同,Windows 10操作系统在正式版当中取消了任务栏中的"开始"按钮,将大部分的应用程序图标放置在开始屏中,同时将系统设置等常用功能整合到了Ch ...

[转]Android SQLite

数据库操作SQLite Expert Personal 3 注:下载相关SQLite的文档在:http://www.sqlite.org/ 具体的sql语句不作长细介绍,在本博客中也有相关的文章. 一 ...

ELk之使用kibana展示访问IP地图

参考文档:http://blog.51cto.com/ls40905250/1915280 https://blog.csdn.net/zsjwish/article/details/79792212 ...

Android开发14——监听内容提供者ContentProvider的数据变化

一.提出需求 有A,B,C三个应用,B中的数据需要被共享,所以B中定义了内容提供者ContentProvider:A应用修改了B应用的数据,插入了一条数据.有这样一个需求,此时C应用需要得到数据被修改 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值