Systemd系统管理

systemctl是 Systemd 的主命令,用于管理系统。

#查看启动耗时
systemd-analyze
#查看每个服务的启动耗时
systemd-analyze blame
#显示瀑布状的启动过程流
systemd-analyze critical-chain
#显示指定服务的启动流
systemd-analyze critical-chain atd.service
#显示当前主机的信息
hostnamectl
#设置主机名。
hostnamectl set-hostname rhel7

1.4 localectl
localectl命令用于查看本地化设置。

查看本地化设置

localectl
#查看当前时区设置
timedatectl
#查看当前登录的用户。
loginctl
#列出显示指定用户的信息
loginctl show-user ruanyf

列出所有配置文件

systemctl list-unit-files
#列出指定类型的配置文件
systemctl list-unit-files --type=service
这个列表显示每个配置文件的状态,一共有四种。
enabled:已建立启动链接
disabled:没建立启动链接
static:该配置文件没有[Install]部分(无法执行),只能作为其他配置文件的依赖
masked:该配置文件被禁止建立启动链接

更改查看Unit 的状态

sysystemctl status transmission-daemon.service

  • 重载所有修改过的配置文件
    systemctl daemon-reload
  • 开始 | 停止 | 重启服务
    systemctl start|stop|restart httpd.service
  • 开机自启并运行
    systemctl enable httpd.service --now
  • 禁止开机自启
    systemctl disable httpd.service --now
  • 查看配置文件
    systemctl cat atd.service
  • 杀死一个服务的所有子进程
    systemctl kill apache.service
  • 列出正在运行的 Unit
    systemctl list-units
  • 列出所有Unit,包括没有找到配置文件的或者启动失败的
    systemctl list-units --all
  • 列出所有没有运行的 Unit
    systemctl list-units --all --state=inactive
  • 列出所有加载失败的 Unit
    systemctl list-units --failed
  • 列出所有正在运行的、类型为 service 的 Unit
    systemctl list-units --type=service
  • 显示某个 Unit 服务是否建立了启动链接
    systemctl is-enabled transmission-daemon.service

日志管理

Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#查看所有日志(默认情况下 ,只保存本次启动的日志)
sudo journalctl
#查看内核日志(不显示应用日志)
sudo journalctl -k
#查看系统本次启动的日志
sudo journalctl -b
sudo journalctl -b -0
#查看上一次启动的日志(需更改设置)
sudo 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
#查看指定服务的日志
sudo journalctl /usr/lib/systemd/systemd
#查看指定进程的日志
sudo journalctl _PID=1
#查看某个路径的脚本的日志
sudo journalctl /usr/bin/bash
#查看指定用户的日志
sudo journalctl _UID=33 --since today
#查看某个 Unit 的日志
sudo journalctl -u nginx.service>
sudo journalctl -u nginx.service --since today
#实时滚动显示某个 Unit 的最新日志
sudo journalctl -u nginx.service -f
#查看指定优先级(及其以上级别)的日志,共有8级
sudo journalctl -p err -b
0: emerg | 1: alert | 2: crit | 3: err | 4: warning | 5: notice | 6: info | 7: debug
日志默认分页输出,--no-pager 改为正常的标准输出
sudo journalctl --no-pager
#以 JSON 格式(单行)输出
sudo journalctl -b -u nginx.service -o json
#显示日志占据的硬盘空间
sudo journalctl --disk-usage
#指定日志文件占据的最大空间
sudo journalctl --vacuum-size=1G
#指定日志文件保存多久
sudo journalctl --vacuum-time=1years
#删除重置日志
rm -rf /var/log/journal/*
##重启服务
systemctl restart systemd-journald

Linux使用timedatectl设置时区与同步时间

Systemd

介绍

timedatectl是一个新工具,它作为 systemd 系统和服务管理器的一部分,代替旧的传统的用在基于 Linux 分布式系统的 sysvinit 守护进程的 date 命令。timedatectl 命令可以查询和更改系统时钟和设置,可以使用此命令来设置或更改当前的日期、时间和时区,或实现与远程 NTP 服务器的自动系统时钟同步。

  • 查看所有可用的时区
1
timedatectl list-timezones
  • 设置当前系统的时区为上海
1
sudo timedatectl set-timezone "Asia/Shanghai"
  • 查看当前系统的时区
1
timedatectl status

同步时间

一般重新设置系统时区后,现实时间会与系统时间之间会有误差,这时候建议使用 systemd-timesyncd 相关工具来解决时间差异的问题。特别注意:timedatectl 并不兼容 ntpd 等组件,请不要安装 ntpd 等组件,以免时间同步失效。

  • 安装 systemd-timesyncd 服务
1
sudo apt install systemd-timesyncd
  • 更改配置文件,添加 NTP 服务器(添加一行 NTP 服务器地址)
1
2
3
4
5
6
sudo vim /etc/systemd/timesyncd.conf
[Time]
NTP=pool.ntp.org 0.asia.pool.ntp.org 1.asia.pool.ntp.org 2.asia.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
  • 重启 systemd-timesyncd 服务
1
sudo systemctl restart systemd-timesyncd
  • 查看 systemd-timesyncd 服务的运行状态
1
sudo systemctl status systemd-timesyncd
  • 启用时间自动同步
1
sudo timedatectl set-ntp true
  • 查看时间同步状态
1
2
3
4
5
6
timedatectl status

timedatectl timesync-status

timedatectl show-timesync --all


Systemd系统管理
http://example.com/2024/12/11/Linux/Systemd系统管理/
作者
秋雨夜眠
发布于
2024年12月12日
更新于
2024年12月12日
许可协议