启动脚本是如何工作的

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 系统),我们这里给出的文件只是它们怎样工作的一个示例而已。

最新文章

  1. 计算Div标签内Checkbox个数或已被disabled的个数
  2. edit界面初始化加默认值
  3. 【CefSharp】 禁用右键菜单 与 控制弹出窗口的方式(限版本39.0.0.1)
  4. 比较Date时间先后
  5. for循环嵌套的穷举,迭代,以及while的使用和for的转换
  6. 总结一下ERP .NET程序员必须掌握的.NET技术
  7. python用parammiko模块实现linux的远程操作
  8. jsp 有哪些内置对象?作用分别是什么? 分别有什么方 法?
  9. codeforece Round#311 BCDE
  10. Jquery 多选全选/取消 选项卡切换 获取选中的值
  11. webpack核心概念
  12. UNIX网络编程——使用select函数编写客户端和服务器
  13. web.py模块使用
  14. sga 操作命令
  15. connect: Address is invalid on local machine or port is not valid on remote
  16. [转]GFS架构分析
  17. linux常用命令:date 命令
  18. WCF 添加 RESTful 支持,适用于 IIS、Winform、cmd 宿主
  19. python学习笔记(十一)之序列
  20. excel中多表汇总

热门文章

  1. MAC之tar解压与压缩gz打包命令
  2. tk.mybatis Example 多个or条件拼接
  3. Luogu P1471 方差
  4. Java构造方法经典例题
  5. React后台管理系统-table-list组件
  6. JQuery根据关键字检索html元素并筛选显示
  7. Vue 恢复初始值的快速方法
  8. JavaScript两种创建标签的的方法,实现点击按钮让text自增
  9. 项目实战2.3-Nginx的“远方表哥”—Tengine
  10. 三、Linux 系统目录结构