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
相关推荐
huoxingwen1 分钟前
Ubuntu 22.04 上 VMware Workstation 点击虚拟机窗口就消失的解决历程
linux·运维·ubuntu
姚青&20 分钟前
Linux 常用命令之基本命令
linux·运维·服务器
一路往蓝-Anbo22 分钟前
【第05期】数据的微观世界 (五) —— 浮点数 vs 定点数:MCU的数学课
linux·stm32·单片机·嵌入式硬件·物联网
G_H_S_3_24 分钟前
【网络运维】企业级监控平台Zabbix:部署与实践指南
linux·运维·网络·zabbix
小周学学学28 分钟前
Vcenter Auto Deploy安装与使用
linux·运维·服务器
Larry_Yanan40 分钟前
Qt多进程(五)QUdpSocket
开发语言·c++·qt·学习·ui
De-Alf42 分钟前
Megatron-LM学习笔记(6)Megatron Model Attention注意力与MLA
笔记·学习·算法·ai
polarislove02141 小时前
9.2 自制延迟函数-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件
智嵌电子1 小时前
【笔记篇】【硬件基础篇】模拟电子技术基础 (童诗白) 第7章 波形的发生和信号的转换
笔记·嵌入式硬件
微爱帮监所写信寄信1 小时前
微爱帮监狱写信寄信工具服务器【Linux篇章】再续:TCP协议——用技术隐喻重构网络世界的底层逻辑
linux·服务器·开发语言·网络·网络协议·小程序·监狱寄信