一、启动过程
CentOS8采用了systemd,启动过程被大大缩短了。具体启动过程如下:
1、开机自检。
2、从硬盘的MBR中读取引导程序GRUB。
3、引导程序更加配置文件显示引导菜单。
4、如果选择进入Linux系统,此时引导程序就会加载Linux内核文件。
5、当内核全部载入内存后,GRUB的任务完成。此时全部控制权限交给Linux,CPU开始执行Linux内核代码,如初始化任务调度、分配内存、加载驱动等。
6、内核代码执行完成后,开始执行Linux系统第一个进程-systemd,进程号为1.
7、systemd进程启动后读取/etc/systemd/system/default.target(这个文件的作用是设置系统的运行级别)。systemd会根据此文件设置系统的运行级别并启动相应的服务。
8、服务启动完成后,将引导login
二、服务单元控制
CentOS8使用systemd替换了Sys V,其中最大的改变是控制服务的方式产生了变化。如何在systemd中控制服务,在systemd中通常将服务称为“单元”。systemd单元中包含服务、挂载点、系统设备等。这些都称为单元。
查看系统中的单元:systemctl 或 systemctl list-units
查看系统中安装的服务:systemctl list-unit-files
对系统单元的控制通常有激活单元(相当于启动服务)、停止单元、重启单元以及重新读取配置等。
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld 关闭
systemctl start firewalld 启动
systemctl restart firewalld 重启
systemctl is-enable firewalld 查看是否开机启动
systemctl enable firewalld 开机启动
systemctl disable firewalld 开机不启动
系统关机重启也可以通过systemctl来控制:
- systemctl poweroff 关机
- systemctl reboot 重启
- systemctl suspend 待机
与Sys V中的服务相似,systemd中的服务也是由文件控制的,不同的是systemd中使用的是单元配置文件而不是脚本。如sshd服务的单元配置文件,路径在/usr/lib/systemd/system
[root@Master system]# cat sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
通常单元的配置文件放在/usr/lib/systemd/system/(主要存放软件包安装的单元)和/etc/systemd/system/(主要存放由系统管理员安装和系统密切相关的单元)。如果需要添加单元配置文件,只需将配置文件放到相应的目录中,然后执行命令“systemctl daemon-reload”即可。