2.4 管理系统服务
本节介绍基于 systemd 的 Ubuntu 24.04 LTS 系统服务状态查询、启用/禁用及运行时控制方法。所有操作需以 root 权限执行,建议通过具有 sudo 权限的管理员账户调用 `sudo systemctl` 命令。
[1] 服务状态与配置概览
● 查看当前运行中的服务(默认仅显示已加载且处于 active 状态的服务):
```bash
root@localhost:~# systemctl -t service
```
可选增强参数:
`--all`:同时列出 inactive(未激活)及 failed(失败)状态的服务;
`--no-pager`:禁用分页器(如 less/more),便于脚本化处理或日志采集。
● 查看全部服务单元文件的启用状态与预设策略(含 enabled/disabled/static/alias 等类型):
```bash
root@localhost:~# systemctl list-unit-files -t service
```
输出字段说明:
**UNIT FILE**:服务单元文件名;
**STATE**:当前启用状态(enabled:开机自启;disabled:禁用;static:不可直接启用,由其他单元触发;alias:别名);
**PRESET**:系统预设策略(由 `/usr/lib/systemd/system-preset/` 定义,决定新安装服务的默认状态)。
注:`systemctl -t service` 默认仅显示已加载单元;若需完整清单(含未加载单元),请使用 `systemctl list-unit-files`。
[2] 服务生命周期管理
对于确认无需运行的安全敏感或资源冗余服务(如 `apparmor` 在特定容器化或精简部署场景中),可执行以下标准化操作:
```bash
# 立即停止服务进程(运行时生效)
root@localhost:~# systemctl stop apparmor
# 禁用开机自启(持久化配置,写入 /etc/systemd/system/)
root@localhost:~# systemctl disable apparmor
```
说明:`.service` 后缀在 systemctl 命令中可省略,系统将自动补全;禁用操作不影响当前会话中已启动的服务实例,需配合 `stop` 使用以实现完全停用。