Systemd笔记
2023-03-07 09:40:00 时间
Systemd管理的启动脚本位于 /usr/lib/systemd/system/ 下
Systemd启动顺序约定为: 当前服务满足启动条件, 则立即创建进程进行并行启动, 启动条件指服务的依赖关系(Requires, Wants)和顺序关键字(After, Before)等
# 查看启动的服务, 再加上 --all 参数可以列出未启动的服务 systemctl list-units # 列出服务配置文件, 如果只看服务, 可以加上 --type=service # 状态有4种: enabled:已建立启动链接, disabled:没建立启动链接, static:没有[Install]部分,只作为其他配置的依赖, masked:被禁止建立启动链接 systemctl list-unit-files # 查看当前系统的所有 Target $ systemctl list-unit-files --type=target # 查看启动时的默认 Target systemctl get-default # 设置启动时的默认 Target systemctl set-default multi-user.target # 切换Target时默认不关闭前一个Target启动的进程, 而用isolate命令时会关闭前一个Target里所有不属于后一个Target的进程 systemctl isolate multi-user.target # 查看服务启动的依赖关系, 要列出target里面的详细服务, 需要加上 --all 参数 systemctl list-dependencies some.service
Target 与 传统 RunLevel 的对应关系如下
Traditional runlevel New target name Symbolically linked to... Runlevel 0 | runlevel0.target -> poweroff.target Runlevel 1 | runlevel1.target -> rescue.target Runlevel 2 | runlevel2.target -> multi-user.target Runlevel 3 | runlevel3.target -> multi-user.target Runlevel 4 | runlevel4.target -> multi-user.target Runlevel 5 | runlevel5.target -> graphical.target Runlevel 6 | runlevel6.target -> reboot.target
.Systemd对单个服务的管理
# 显示某个 Unit 是否正在运行 systemctl is-active application.service # 显示某个 Unit 是否启动失败 systemctl is-failed application.service # 显示某个 Unit 服务是否开启了自动启动 systemctl is-enabled application.service # 激活开机启动 systemctl enable application.service # 撤销开机启动 systemctl disable application.service
启动分析
# 查看启动耗时 systemd-analyze # 查看启动各项服务使用的时间 systemd-analyze blame # 显示瀑布状的启动时序 systemd-analyze critical-chain # 显示指定服务的启动时序 systemd-analyze critical-chain sshd.service # 生成服务启动时序svg图 systemd-analyze plot > boot.svg
查看启动日志
# 查看启动日志 journalctl # 查看内核日志 journalctl -k # 查看系统本次启动的日志 journalctl -b journalctl -b -0 # 查看上一次启动的日志(需更改设置) journalctl -b -1 # 查看指定时间的日志 sudo journalctl --since="2012-10-30 18:17:16" sudo journalctl --since "20 min ago" sudo journalctl --since yesterday sudo journalctl --since "2015-01-10" --until "2015-01-11 03:00" sudo journalctl --since 09:00 --until "1 hour ago" # 显示尾部的最新10行日志 sudo journalctl -n # 显示尾部指定行数的日志 sudo journalctl -n 20 # 实时滚动显示最新日志 sudo journalctl -f
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的