ubuntu的启动顺序
与大多数linux系统一样,ubuntu按照以下顺序启动:
1. 读取MBR信息,启动Boot Manager。
2. 加载系统内核,启动 init 进程, init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。
3. init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别。通常情况下/etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。
4. 根据 /etc/rcS.d/文件夹中对应的脚本启动 Xwindow 服务器 xorg,Xwindow 为 Linux 下的图形用户界面系统。
5. 启动登录管理器,等待用户登录。
运行级别
ubuntu的自启动脚本目录为,一般为,对应操作系统0-6级运行状态下需要执行的脚本。此外还有目录,文件。除了外,其它目录内的脚本都链接到目录下的脚本。这就是为什么我们经常会用这样的命令来启动服务。
linux运行级别的解析
通常情况下,运行级别下的启动程序的脚本在对应的目录下。一般情况下,目录下的启动脚本是一样的,因为它们都是同一级别的启动内容。
当前系统的运行级别可以通过命令查看。
经查看,我们当前的启动级别是5,那么我们进入目录,同时创建启动脚本,那么开机时就会自动启动该程序。不过普遍的我们都是在目录下创建该脚本,然后通过软链接到目录下。现在我们进入目录下,看看里面的内容:
我们可以发现,该目录下的软链接名称,似乎有一定的规则:
S 表示 Start,开启服务
[number]表示的是该脚本的运行优先级,number越小,脚本的运行优先级就越高
[service name]表示的是服务的名称
因此,我们要定义服务的启动顺序,只需要指定number大小即可。
开启与关闭服务
如果我们手动创建启动脚本,然后添加到对应级别的目录下,这个过程是比较繁琐的,幸好linux给我们提供了命令:
所以我们只需要在目录下创建好我们的脚本,然后使用命令,就可以添加到对应级别的启动过程。
示例:
启动脚本的创建
现在我们以安装nginx为例,假设我们的nginx安装在目录下。
- 首先,我们在创建文件,并将shell代码拷贝进去。
- 修改文件权限为755 。
- 添加服务到启动过程 。
现在,我们就可以用以下命令正常启动nginx了。
引用
[1]关于Ubuntu运行级别、开机启动脚本的说明
[2]Ubuntu 添加删除开机启动项
本文原创自的JSS同学之手,
领取专属 10元无门槛券
私享最新 技术干货