Linux学习笔记12 systemd的其他命令

前文已经介绍了systemd在系统初始化中起到的作用和服务的管理和配置。这里补充一下systemd的其他工具和系统进程的管理

前文

Linux学习笔记10 系统启动初始化,服务和进程管理(上)-CSDN博客

Linux学习笔记11 系统启动初始化,服务和进程管理(下)-CSDN博客

systemd的其他命令

systemd-analyse

可以用来分析系统启动时的性能。

复制代码
systemd-analyze [option] [command]

-option有以下选项:

--user

--system

分别是指定命令在什么级别查询systemd实例。

子命令

和systemctl一样,存在子命令。

time命令:输出系统启动时间。

blame:按照占时间长短输出所有正在运行的单元。用来优化系统,缩短启动时间。

critical-chain:输出启动链。

plot:输出服务启动时间和启动用时。

dot:输出单元依赖图

dump:输出详细的可读服务状态。

复制代码
 systemd-analyze plot >a.svg

 systemd-analyze blame

示例

复制代码
systemd-analyze dot | dot -Tsvg >mysvg.svg

hostnamectl

读取,修改主机名:

复制代码
sudo hostnamectl 
sudo hostnamectl set-hostname dreamer

localectl

复制代码
(base) dreamer@dreamerVB:~$ localectl
   System Locale: LANG=zh_CN.UTF-8
                  LANGUAGE=zh_CN:zh
       VC Keymap: n/a
      X11 Layout: cn
       X11 Model: pc105

timedatectl

复制代码
(base) dreamer@dreamerVB:~$ timedatectl
                      Local time: 日 2024-12-01 20:54:53 CST
                  Universal time: 日 2024-12-01 12:54:53 UTC
                        RTC time: 日 2024-12-01 12:54:51
                       Time zone: Asia/Shanghai (CST, +0800)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

loginctl

复制代码
(base) dreamer@dreamerVB:~$ loginctl
   SESSION        UID USER             SEAT             TTY             
         1       1000 dreamer          seat0            tty1            

1 sessions listed.

关于系统的运行级别和状态在systemd中的解释

前文说过,systemd不存在运行级别,只有所谓的目标。

区别:

在运行级别中,系统按照指定的运行级别去启动对应服务。

在启用目标时,系统按照指定的目标对应的依赖去运行对应的服务。

系统的默认运行状态:

运行级别/etc/inittab中设置

默认目标在/lib/systemd/system/default.target中设置

注意:

想像切换运行级别一样,切换目标并不是启动某一个目标就行,而是要使用子命令isolate。

复制代码
sudo systemctl isolate rescue.target
#sudo systemctl start rescue.target 
#使用start试图切换这是错误的

因为start只是启动目标,并不会影响其他目标。

默认目标的话一般是图形化界面。如果是server版本可能是多用户命令行。

关于日志

systemd具有日志管理的模块。

journalctl命令

同样的,它也有很多选项。

复制代码
-h, --help:显示帮助信息。
-V, --version:显示版本信息。
-b, --boot:仅显示当前引导的日志。
-u, --unit=UNIT:仅显示指定单元的日志。
-p, --priority=LEVEL:根据日志级别过滤输出,比如 emerg, alert, crit, err, warning, notice, info, debug。
-t, --identifier=STRING:仅显示带有指定字符串的消息。
-f, --follow:跟踪日志输出,类似于 tail -f。
-n, --lines[=INTEGER]:显示最后几行日志,默认为 10 行。
-r, --reverse:以相反的顺序显示日志。
--since=DATE:显示指定日期之后的日志。
--until=DATE:显示指定日期之前的日志。
-c, --cursor=CURSOR:从指定的游标位置开始显示日志。
-e, --pager-end:启动分页器并直接跳到日志的末尾。
--no-pager:不启动分页器。
-a, --all:显示所有日志,包括已经通过 journalctl --vacuum 删除的日志。
--vacuum-size=SIZE:清理日志文件以保持指定的磁盘空间。
--vacuum-time=TIME:清理早于指定时间的日志。

-k 或 --dmesg: 这个选项用于显示内核消息。它等同于 journalctl /dev/kmsg,会列出与 dmesg 命令相同的内核日志信息。
-S 或 --since=DATE: 这个选项用于指定开始显示日志的时间点。DATE 可以是多种格式,包括绝对时间(例如 "2023-01-01 00:00:00")或者相对时间(例如 "2023-01-01" 或者 "2 hours ago")。
-U 或 --until=DATE: 这个选项与 -S 相反,用于指定停止显示日志的时间点。与 -S 一样,DATE 可以是绝对时间或相对时间。

示例:

复制代码
journalctl -S yesterday -U now
相关推荐
一颗青果4 小时前
HTTP协议详解
linux·网络·网络协议·http
广州灵眸科技有限公司7 小时前
瑞芯微(EASY EAI)RV1126B CAN使用
linux·网络·单片机·嵌入式硬件
Java后端的Ai之路7 小时前
【神经网络基础】-神经网络学习全过程(大白话版)
人工智能·深度学习·神经网络·学习
k***92169 小时前
【C++】继承和多态扩展学习
java·c++·学习
weixin_440730509 小时前
java结构语句学习
java·开发语言·学习
魂万劫9 小时前
如何在虚拟机VM上|Linux环境内安装windows
linux·运维·服务器·windows
序属秋秋秋10 小时前
《Linux系统编程之进程控制》【进程等待】
linux·c语言·c++·进程·系统编程·进程控制·进程等待
zfj32110 小时前
top 命令中的 wa (IO wait) 指标,理论上几乎完全是由磁盘IO(包括swap)引起的,而不是网络IO
linux·网络·top·iowait
航Hang*10 小时前
Photoshop 图形与图像处理技术——第8章:图像的色彩与色彩调整和图像的输出与优化
图像处理·笔记·ui·photoshop
Xの哲學10 小时前
Linux网卡注册流程深度解析: 从硬件探测到网络栈
linux·服务器·网络·算法·边缘计算