查看所有systemctl管理的服务
列出所有已加载的服务: systemctl 或者,如果您想要查找特定的服务,例如docker.service,可以使用: systemctl | grep docker.service
- 列出所有服务:
systemctl list-units --type=servicesystemctl list-socketssystemctl list-units所有的单元,包括服务(service)、挂载点(mount)、套接字(socket)、计时器(timer)等,可快速查看系统运行状态。systemctl list-unit-files所有的单元文件systemctl list-timerssystemctl list-jobssystemctl list-dependencies
- 列出所有处于活动状态的服务(运行或已退出):
systemctl list-units --type=service --state=active - 列出所有正在运行的服务:
systemctl list-units --type=service --state=running - 列出所有处于启用状态的服务:
systemctl list-unit-files --state=enabled
unattended-upgrades
unattended-upgrades 是 Debian/Ubuntu 系统中一个重要的自动化安全更新工具(类似Windows自动更新)。它的主要功能是在无需人工干预的情况下,自动下载并安装系统的安全更新,这对于保持服务器安全性和稳定性至关重要。
- 查看状态:
sudo systemctl status unattended-upgrades - 关闭功能:
sudo dpkg-reconfigure unattended-upgrades在弹出的界面中选择“否”,然后回车确认。 - 直接卸载:
sudo apt remove --purge unattended-upgrades
fwupd
fwupd 核心作用是为服务器上的硬件设备提供统一的、安全的固件更新机制,并评估系统的固件安全状况。
| 步骤 | 命令 | 作用说明 |
|---|---|---|
| 1. 查看设备 | sudo fwupdmgr get-devices | 列出系统内fwupd支持的所有可更新设备。 |
| 2. 刷新元数据 | sudo fwupdmgr refresh | 从LVFS服务器获取最新的固件更新信息。 |
| 3. 检查更新 | sudo fwupdmgr get-updates | 检查当前设备是否有可用的固件更新。 |
| 4. 执行更新 | sudo fwupdmgr update | 下载并安装所有可用的固件更新。部分更新可能需要重启才能生效。 |
在/etc/fwupd/fwupd.conf中,可选择性地禁用特定的硬件设备 (DisabledDevices) 或插件 (DisabledPlugins),或者通过 OnlyTrusted=true 等设置提高安全性,而非完全关闭fwupd。
注意:要生效 fwupd.conf 的更改,你需要重启 fwupd:sudo systemctl restart fwupd.service
| 组件名称 | 类型 | 核心任务 | 运行频率 |
|---|---|---|---|
| fwupd.service | Service | 固件更新的执行者 | 仅在需要更新或查询时运行 |
| fwupd.socket | Socket | 服务的触发器 | 始终运行(极省资源) |
| fwupd-refresh.timer | Timer | 检查更新的计划员 | 按设定的周期(如每日)触发 |
- 自动更新:
fwupd-refresh.timer到达设定时间 -> 触发fwupd-refresh.service-> 后台静默下载最新的固件列表 -> 退出。 - 用户交互:用户输入
fwupdmgr get-updates-> 请求发送到fwupd.socket->systemd发现请求,拉起fwupd.service->fwupd.service读取之前下载好的元数据,反馈给用户是否有可用更新。
保留手动执行的能力,但关闭自动启动(本质就是关闭定时器)
systemctl disabled只是关闭了自启动,如果需要彻底禁用(防止D-Bus 或其他程序再次激活),就需要使用systemctl mask将服务单元链接到 /dev/null。
注意:mask会彻底锁死服务,导致手动也无法启动;需要先使用unmask恢复,才能手工执行或systemctl enable。
fwupd-offline-update.service是 fwupd 系统中的一个专门服务,其核心作用是在系统下一次重启时,自动完成那些必须在操作系统关闭后才能安装的固件更新。会存在一些必须“冷更新”的设备固件,最常见的是主板BIOS/UEFI,以及一些RAID卡、网卡固件。
sudo systemctl status fwupd # Ubuntu Server 24.04中,没有fwupd.socket,只有fwupd
sudo systemctl status fwupd-refresh.timer
sudo systemctl status fwupd.service
# 停止并禁用定时器
sudo systemctl stop fwupd-refresh.timer
sudo systemctl disable fwupd-refresh.timer
# 确认定时器已关闭
systemctl list-timers --all | grep fwupd
# 虽然 fwupd 默认通常是按需启动的,但执行以下命令可以确保它不会在系统引导时被意外拉起。
sudo systemctl stop fwupd
sudo systemctl stop fwupd.service
sudo systemctl disable fwupd/fwupd.service # Ubuntu Server 24.04中,提示:The unit files have no installation config
$ systemctl list-unit-files|grep -e fwupd -e STATE
UNIT FILE STATE PRESET
fwupd-offline-update.service static -
fwupd-refresh.service static -
fwupd.service static -
fwupd-refresh.timer disabled enabled
STATE:为用户状态,PRESET:为预设状态
enabled: 服务已启用,会在启动时自动运行disabled: 服务已禁用static: 服务不能被直接启用,但可以被其他服务依赖indirect: 通过依赖关系间接启用
发表回复