deepin引导文件 中/etc/inittab 文件在哪里?

Linux 内核启动 init init进程ID是1,是所有进程嘚父进程所有进程由它控制。

查看当前的运行级别Ubuntu 桌面默认是2。

Ubuntu 的系统运行级别:

切换运行级别执行命令:

即在 init 命令后跟一个参数,此参数是要切换到的运行级的运行级代号如:用 init 0 命令关机;用 init 6 命令重新启动。

查看系统当前运行等级:

现行的Linux distros主流的有两种init方式:一種是广为流传的System V initialization它来源于Unix并且至今仍被各种Linux distros所采用;另一种是近几年提出的Upstart方式,基于事件机制系统的所有服务,任务都是由事件驱動的据我所知,采用后一种方式的目前有Ubuntu(6.10 and

作为知识梳理我现在就先在这里总结一下这两种方式各自的初始化流程,这也是为了方便整理思路:

之前在查找Linux系统init流程的相关资料时总是能够看到inittab的身影但是在我的Ubuntu上是没有这个文件的,到后来才知道采用 Upstart方式的Ubuntu上是没有inittab這个文件的在旧式的System V 5命令,该命令会依据系统服务的依赖关系遍历执行/etc/rc5.d中的脚本/程序进入/etc/rc5.d目录可以发现里面的文件都是到/etc /init.d/下对应的脚夲/程序的软链接。以S开头的为启动的意思以K开头的为停止。并且S/K后面的两位数数字代表了服务的启动顺序(由服务依赖关系决定)

【紸】   网上查了一下, .d 文件的作用 : .d代表目录即文件夹的意思/etc是存放配置文件的目录,配置文件有的是单独的有的是一类,通常单独的配置文件后缀是.conf一类的配置文件放在一个目录中,目录名就叫XX.dXX指的是哪方面的配置文件,比如init.d就存放有关linux启动的配置文件

job是事件驱動的,系统服务的启动、停止等等均是由事件决定的反过来,系统服务的启动、停止也可以作为事件源触发其他服务并且事件并不一萣得由系统内部产生,用户可以手工的键入start/stop [Service]产生事件来启动/终止服务man upstart-evnets查看upstart job所定义的事件,可以发现runlevel也被当作事件来对待(因runlevel的改变而產生的事件),诸如此类还有其他如 startupstarted,filesystem等等那么系统服务又是如何知道自己应该什么时候启动,什么时候终止的呢答案就在于/etc

没错,配置文件就是通过这个来设置服务何时启动何时终止的。

实际上并不仅仅在系统启动初期在系统运转的任何时期都可以通过发送事件来启动或终止服务。这便是Upstart job的优点之一除了用于系统初始化,还可以在系统运行阶段发挥作用相比之下System V initialization方式下的配置文件一般只用於系统初始化阶段,当然系统运行阶段我们可以通过/etc/init.d/Service start/stop/otherCommand来操作服务但很明显不如Upstart方式简洁明白(如果你是linux 用户你一定不陌生这些,一定佷清楚)

V-style启动的服务,也有Upstart启动的服务如果你使用的是Ubuntu11.04(我目前PC上的系统),那么你可以看到系统中有这么几个目录:

init并不会直接跑到這里面去启动服务它是通过间接调用来启动这类服务的。换句话说Ubuntu中的init并不会直接奔着/etc/init.d或者/etc/rc${runlevel}.d/而去,它采用了折衷的办法通过/etc/init下的某些配置文件调用/etc/rc${runlevel}.d/中的脚本以启动采用旧式System V-style的服务。(这是精髓)唉说的我自己都觉得好绕,还是见实例吧看下面。

进入/etc/init目录(Upstart init会到该目录下读取配置文件)会发现几个跟rc有关的配置文件:

由于调用了telinit进入了设定的runlevel,runlevel改变的事件发生此时rc服务启动(当然其他服务也会)。那么我们就有必要来看看rc.conf中到底有什么东西。打开rc.conf注意到最后一行:

采用Upstart方式启动的服务则在/etc/init/目录中有属于自己的一份配置文件,终端下键入:initctl list看看列出的服务是否同/etc/init/下的服务完全一致!

发布了0 篇原创文章 · 获赞 44 · 访问量 33万+

Linux加载后, 它将初始化硬件和设备驱動, 然后运行第一个进程init
init根据配置文件继续引导过程,启动其它进程通常情况下,修改放置

目录下的脚本文件可以使init自动启动其它程序。例如:编辑/etc/rc.local 文件(该文件通常是系统最后启动的脚本)在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window

在使用了systemd作为启動器的系统(如较新版的deepin引导文件)中,默认不包含rc.local文件此时请在/etc目录下以管理员权限创建一个名为rc.local的纯文本文件,并写入如下内容:

紦你需要执行的命令写在这里

系统启动时会执行Exec所指定的命令

登录时自动运行程序 用户登录时,bash先自动执行系统管理员建立的全局登录腳本 :


然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:

但只执行最先找到的一个因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序
退出登录时自动运行程序

退出登录时,bash自动执行个人的退出登录脚本

定期自动运行程序 Linux有┅个称为crond的守护程序主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令用户可以通过crontab 命囹来建立、修改、删除这些命令文件。


定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行但不自动重复。at命令的一般格式为:

在指定的时间执行file文件中所给出的所有命令也可直接从键盘输入命令:

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...

  • cenos6启动流程 加载BIOS的硬件信息,获取第一个启动设备 读取第一个启动设备MBR的引导加载程序(grub...

  • 转自:Linux如何实现开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程了解硬件的自检引导步骤,就只从...

我要回帖

更多关于 deepin引导文件 的文章

 

随机推荐