linux系统初始化——启动脚本是如何工作的
启动脚本是如何工作的
Linux 使用的是基于 运行级(run-levels) 概念的称为 SysVinit 的专用启动工具。它在不同的系统上可能是完全不一样的,所以不能认为一个脚本在某个 Linux 发行版上工作正常,于是在 LFS 中也会正常工作。LFS 有自己的一套规则,当然,LFS 也遵守一些公认的标准。
SysVinit(从现在开始我们称之为"init")以运行级的模式来工作,一般有 7 个运行级(从 0 到 6,实际上可以有更多的运行级,但都是用于特殊情况而且一般使用不到。 参见 init(8) 以获得更多信息),每个运行级对应于一套设定好的任务,当启动一个运行级的时候,计算机就需要执行相应的任务。
默认的运行级是 3,下面是对不同运行级的描述:
0: 停止计算机
1: 单用户模式
2: 无网络多用户模式
3: 有网络多用户模式
4: 保留作自定义,否则同运行级 3
5: 同运行级 4,一般用于图形界面(GUI)登录(如 X 的 xdm 或者 KDE 的 kdm)
6: 重新启动计算机
用来改变运行级的命令是 init [runlevel] ,这里的 [runlevel] 是目标运行级。
例如,要重启计算机,用户可以运行 init 6 命令,reboot 其实只是这个命令的别名,同样,halt 命令也只是 init 0 的别名。
在 /etc/rc.d 目录下有一些类似于 rc?.d 的目录(这里 ? 是运行级的数字)以及 rcsysinit.d ,里面都包含许多符号链接,其中一些以 K 字母开头,另外一些以 S 字母开头,这些链接名在首字母后面都跟着两个数字。K 字母的含义是停止(杀死)一个服务,S 字母的含义是启动一个服务。而数字则确定这些脚本的启动顺序,从 00 到 99(数字越小执行的越早)。当 init 转换到其它运行级时,一些相应的服务会停止,而另一些服务则会启动。
真正的脚本则在 /etc/rc.d/init.d 目录下,它们完成实际工作,符号链接都是指向它们的。停止脚本的链接和启动脚本的链接都指向 /etc/rc.d/init.d 目录下同一个脚本,这是因为调用这些脚本时可以使用不同的参数,例如 start, stop, restart, reload, status 当调用 K 链接时,相应的脚本用 stop 参数运行;当调用 S 链接时,相应的脚本用 start 参数运行。
上面的说明有一个例外,在 rc0.d 和 rc6.d 目录下以 S 开头的链接不会启动任何东西,而是用 stop 参数调用,来停止某些服务。这背后的逻辑是,当用户要重启或关闭系统的时候,不会要启动什么服务,只会要系统停止。
以下是脚本参数的描述:
start 启动服务
stop 停止服务
restart 停止服务,然后再启动
reload 该服务的配置已更新。如果修改了某个服务的配置文件,又不必重启这个服务的时候,可以使用这个参数。
status 显示服务的状态,如果服务正在运行,会显示该服务进程的 PID 。
您可以自由修改启动进程工作的方式(毕竟这是您自己的 LFS 系统),我们这里给出的文件只是它们怎样工作的一个示例而已。
linux系统初始化——启动脚本是如何工作的的更多相关文章
- 详解linux系统的启动过程及系统初始化
一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(boot ...
- Linux系统开机启动时的工作原理
Linux系统开机启动时的工作原理也是深入了解Linux系统核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至 ...
- 探索 Linux 系统的启动过程
引言 之所以想到写这些东西,那是因为我确实想让大家也和我一样,把 Linux 桌面系统打造成真真正正日常使用的工具,而不是安装之后试用几把再删掉.我是真的在日常生活和工作中都使用 Linux,比如在 ...
- linux系统的启动流程梳理
1. 不同版本的linux系统的启动流程 1.1 centos6.x系统的启动流程 其详细启动步骤如下: 1)开机,BIOS自检,检查各个硬件是否正常 2)读取硬盘MBR信息,引导系统启动 3)加载g ...
- 2021年3月-第01阶段-Linux基础-Linux系统的启动流程
Linux系统的启动流程 理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题. 上图为Linux操作系统启动流程 1.加载BIOS 计算机 ...
- Linux系统快速启动方案
========================= 基本常识 ========================= Linux系统基本启动流程: 1. CPU从ROM(如果有的 ...
- Linux系统的启动过程
Linux 系统启动过程 Linux系统的启动过程可以分为5个阶段: BIOS自检 内核的引导. 运行init. 系统初始化. 用户登录系统. BIOS自检: BIOS是英文"Basic I ...
- Linux系统无法启动故障解决方案
Linux系统无法启动故障解决方案 2011-09-27 09:42 佚名 比特网 我要评论(0) 字号:T | T 不管你多么喜爱你的Linux系统机器,有时候你都必须恢复你的系统.是的,即使一台L ...
- [转] 浅谈Linux系统的启动流程
原文:http://blog.csdn.net/justdb/article/details/9621271 版权声明:本文为博主原创文章. Linux系统的启动时通过读取不同的配置文件,执行相应的S ...
随机推荐
- 完全用 Linux 工作
GNU/Linux 不是每個人都想用的.如果你只需要處理一般的事務,玩遊戲,那就不需要了解 Linux. UNIX 比 Windows 更適合用於科學研究工作. 大多數科學家和工程師以 UNIX 作為 ...
- sessionStorage 和 localStorage
html5 中的 web Storage 包括了两种存储方式:sessionStorage 和 localStorage. sessionStorage 用于本地存储一个会话(session)中的数据 ...
- Luogu [P1958] 上学路线_NOI导刊2009普及(6)
上学路线_NOI导刊2009普及(6) 题目详见:上学路线_NOI导刊2009普及(6) 这是一道基础的DFS(深搜)题,堪称模板,是新手练习搜索与回溯的好题选. 大致思路:从(1,1)开始搜索,每次 ...
- C#的接口基础教程之六 接口转换
C#中不仅支持.Net 平台,而且支持COM平台.为了支持 COM和.Net,C# 包含一种称为属性的独特语言特性.一个属性实际上就是一个 C# 类,它通过修饰源代码来提供元信息.属性使 C# 能够支 ...
- 可拖拽div
在开发的时候需要一个可拖拽的prompt弹框.自己写了一个,大概思路为: 1.获取鼠标左键按下移动的起点坐标(x,y). 2.获取div的left和top属性. 3.得到鼠标坐标到左上角的距离(x-t ...
- Linux企业生产环境用户权限集中管理项目方案案例
企业生产环境用户权限集中管理项目方案案例: 1 问题现状 当前我们公司里服务器上百台,各个服务器上的管理人员很多(开发+运维+架构+DBA+产品+市场),在大家登录使用Linux服务器时,不同职能的员 ...
- Session 会话保持
本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答 一.术语session session,中文经常翻译为会话,其本来的 ...
- JZOJ 5842
Description 给定一个n*m 的 01 矩阵,求包含[l,r]个 1 的子矩形个数. Input 第一行,两个正整数n,m.接下来n 行,每行一个长度为 m 的 01 串,表示给定的矩阵.接 ...
- A1065 A+B and C (64bit) (20)(20 分)
A1065 A+B and C (64bit) (20)(20 分) Given three integers A, B and C in [-2^63^, 2^63^], you are suppo ...
- CSU-2007 Football Training Camp
Football Training Camp 在一次足球联合训练中一共有n支队伍相互进行了若干场比赛. 对于每场比赛,赢了的队伍得3分,输了的队伍不得分,如果为平局则两支队伍各得1分. Input 输 ...