systemd的历史由来及概述
 
在Linux系统的发展历程中,init进程一直是系统启动的核心。然而,这种传统的启动方式存在两个主要缺点:
- 启动时间长:init进程采用串行启动机制,只有在前一个进程启动完成后,才能启动下一个进程,这导致了整体启动时间的延长。
- 启动脚本复杂:init进程负责执行启动脚本,但不管理其他事务。启动脚本需要自行处理各种情况,这往往使得脚本变得冗长且复杂。
正是由于这些限制,systemd应运而生。systemd是一个现代化的初始化系统,它旨在克服init的缺点,提供更快的启动速度和更强的功能性。
 systemd通过并行处理服务的启动,减少了系统的启动时间。同时,它引入了单元文件(unit files)的概念,通过这些配置文件来管理服务,从而简化了启动脚本的复杂性。
systemd包含的常用指令
 
- systemctl: 管理系统服务和状态,如启动、停止、重启服务。
- hostnamectl: 设置或显示当前系统的主机名。
- localectl: 设置或显示系统的语言和文本设置。
- timedatectl: 设置或显示系统的时间和日期。
journalctl指令
 
journalctl是systemd的日志管理工具,它允许用户以多种方式查看和管理系统日志。
常用方法
- journalctl: 显示所有日志。
- journalctl k: 只显示内核日志。
- journalctl -b;- journalctl -b -0: 查看系统本次启动的日志。
- journalctl -b -0 -k: 只显示本地启动的内核日志
- journalctl -f: 实时跟踪日志。
过滤和搜索日志
- journalctl --since "2024-06-29 10:00:00": 查看特定时间后的日志。
- journalctl --until "2024-06-29 12:00:00": 查看特定时间前的日志。
查看优先级日志
emerg : 系统不可用
alert : 必须立即采取行动
crit : 临界条件
err : 错误条件
warning : 警告条件
notice : 正常但重要的条件
info : 信息性消息
debug : 调试级消息
- journalctl -p err: 只显示错误信息。
- journalctl -p err -b: 只显示本次启动的错误信息。
其他命令
- journalctl -u <服务名>: 查看特定服务的日志。
- journalctl -o verbose: 输出详细日志。
- journalctl -o json: 以JSON格式输出日志。
- journalctl --disk-usage: 查看日志所占用的磁盘空间
附录
linux systemctl 指令 —— 阮一峰