目录
Linux操作系统的引导过程
- 开机自检:检测硬件设备,找到能够引导系统的设备,比如硬盘
- MBR引导:运行MBR扇区里的主引导程序GRUB
- 启动GRUB菜单:系统读取GRUB配置文件(/boot/grub2/grub.cfg)获取内核的设置和位置,并在屏幕显示GRUB菜单页面
- 加载Linux内核:把内核加载到内存,将系统控制权交接给内核
- init进程初始化:内核将init进程加载到内存中运行,并把init进程作为系统的第一个进程
- 系统初始化:启动内核模块,执行运行级别的启动脚本,执行/etc/rc.d/rc.local文件里的命令等
init进程
init进程:文件位于 /sbin/init -> /lib/systemd/systemd ,init进程PID号固定为 1 ,是系统中其它所有进程的父进程
进程启动方式
centos7开始的版本默认的启动方式是 systemd,开机服务程序为并行启动,启动效率较快
centos6及以前版本的启动方式是 sysVinit,开机服务程序是通过串行执行/etc/init.d/目录下的shell脚本启动的,容易阻塞,启动效率较慢
Linux系统的运行级别
运行级别 | 功能 | 对应的systemd单元 | 切换 | |
0 | 关机 | poweroff.target | init 0 | systemctl isolate poweroff.target |
1 | 单用户模式 | rescue.target | init 1 | systemctl isolate rescue.target |
2 | 字符界面的多用户模式(无网络) | multi-user.target | init 3 | systemctl isolate multi-user.target |
3 | 字符界面的多用户模式(完整的,有网络) | multi-user.target | ||
4 | 字符界面的多用户模式(保留) | multi-user.target | ||
5 | 图形界面的多用户模式 | graphical.target | init 5 | systemctl isolate graphical.target |
6 | 重启 | reboot.target | init 6 | systemctl isolate reboot.target |
服务管理操作
systemctl
systemctl
是 Linux 系统服务管理工具systemd
的主命令,用于控制系统服务。systemd
是 Linux 系统和服务管理器,它提供了强大的功能来启动、停止、重启、重载系统服务,以及管理系统运行级别。
systemctl start 服务名[.service] #查看状态
systemctl stop 服务名[.service] #停止服务
systemctl restart 服务名[.service] #重启服务
systemctl reload 服务名[.service] #重载服务配置,当服务的配置文件被修改后,可以使用此命令重新加载配置,而无需重启服务。
systemctl status 服务名[.service] #显示指定服务的当前状态,包括是否正在运行、最近一次启动或停止的时间等
systemctl is-active 服务名[.service] #查看服务是否活动,用于检查一个或多个服务单元(unit)的当前活动状态。这个命令不会输出详细的服务状态信息,而是返回一个简短的字符串,表明服务是否处于活动状态。
#要确保在 /usr/lib/systemd/system/ 目录中有相关服务的 XXX.service 文件
service
service
命令用于管理系统服务。它是许多 Linux 发行版中传统 init 系统(如 SysVinit)的一部分,用于启动、停止、重启、查询服务状态等。然而,随着systemd
的普及,许多现代的 Linux 发行版已经转向使用systemctl
作为主要的服务管理工具。尽管如此,service
命令在一些旧的系统或特定的发行版中仍然可用。
service 服务名 start #启动服务
service 服务名 stop #停止服务
service 服务名 restart #重启服务
service 服务名 reload #重载服务配置
service 服务名 status #查询服务状态
#要确保在 /etc/init.d/ 目录中有相关服务的管理脚本文件(需要可执行权限)
服务开机自启管理
systemctl enable|disable [--now] 服务名[.service] # --now选项可实现立即开启|关闭服务
systemctl is-enabled 服务名[.service] #查看服务是否开机自启
ntsysv
ntsysv #图形化管理开机自启