systemd 常见问题
journalctl
显示内核日志:
~# journalctl -k
~# journalctl -t kernel
显示设备单元
~# systemctl --all --full -t device
systemd-networkd
使用 networkctl
或 networkctl list
命令显示网卡列表:
~# networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
12 eth0 ether routable configured
增加一个 DHCP 的网络配置:
~# cat > /etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
DHCP=yes
[DHCPv4]
UseDNS=no
或者静态地址的网络配置:
~# cat > /etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
Address=10.1.10.9/24
Gateway=10.1.10.1
DNS=10.1.10.1
配置完成之后就可以使用 networkctl reload
命令刷新。
systemd-resolved DNS 服务器
修改 /etc/systemd/resolved.conf
配置 DNS 服务器地址:
~# cat /etc/systemd/resolved.conf
[Resolve]
DNS=114.114.114.114
启动 systemd-resolved
DNS 服务器:
~# systemctl start systemd-resolved
~# systemctl enable systemd-resolved
可以使用 resolvectl
或 systemd-resolve --status
命令确认 DNS 服务器状态。
如果不存在 /etc/resolv.conf
文件,也可以创建链接:
~# ln -sfn /usr/lib/systemd/resolv.conf /etc/resolv.conf
运行时启用的服务
某些服务可能被禁用后也会在运行时启用:
~# systemctl is-enabled serial-getty@ttyAMA0.service
enabled-runtime
可以在 Generators 中查找依赖:
~# ls -l /run/systemd/generator/getty.target.wants/serial-getty@ttyAMA0.service
lrwxrwxrwx 1 root root 41 4月 2 01:37 /run/systemd/generator/getty.target.wants/serial-getty@ttyAMA0.service -> /lib/systemd/system/serial-getty@.service
如果需要强制禁用,可以:
~# systemctl mask serial-getty@ttyAMA0.service
Created symlink /etc/systemd/system/serial-getty@ttyAMA0.service → /dev/null.
此时的 is-enabled
状态:
~# systemctl is-enabled serial-getty@ttyAMA0.service
masked
也可以恢复:
~# systemctl unmask serial-getty@ttyAMA0.service
Removed /etc/systemd/system/serial-getty@ttyAMA0.service.