Linux 开机流程梳理

2018年06月27日

读入/boot 目录下的内核文件

运行第一个程序/sbin/init,作用为初始化系统环境

之间就直接链接至/etc/init.d 文件夹,逐一加载启动脚本。

目前Systemd 已经取代initd 成为系统的第一个进程,PID等于1,其他进程都是它的子进程。

lrwxrwxrwx 1 root root 20 Oct 27  2017 /sbin/init -> /lib/systemd/systemd

Systemd 开机执行/etc/systemd/system 中的配置文件

Systemd 有默认的启动 Target,一般是multi-user.target,所以开机启动的配置项会放在/etc/systemd/system/multi-user.target.wants 目录中。

1systemctl enable mongod.service
2# Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /lib/systemd/system/mongod.service.

如上面命令所示,用enable 命令设置开机启动后,会在此目录中添加一个符号链接,指向真正的配置文件。

也可通过命令查看开机启动项:

1systemctl list-unit-files --type=service | grep enabled

查看特定程序的开机运行状态可以为:

1systemctl status mongod.service

在输出的Loaded: 表示是否会开机启动,Active: 表示当前的运行状态。

参考链接