UBUNTU16.04启动顺序与开机自动脚本编写

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同学之手,

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180228A11POQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券