systemctlZabbix-Agent服务笔记
Linux systemctl 管理 Zabbix-Agent 服务笔记
一、需求场景
在 Linux 系统中,需要实现以下逻辑:
- 检查
zabbix-agent服务是否运行 - 如果运行,则显示服务状态(
status) - 如果未运行,则执行启动命令(
systemctl start)
二、一键命令实现(检查并启动)
方式一:一行命令(推荐用于脚本或快速执行)
systemctl is-active --quiet zabbix-agent && systemctl status zabbix-agent || systemctl start zabbix-agent命令解释:
systemctl is-active --quiet zabbix-agent:静默检查服务是否运行(退出码0表示运行中)&&:前面命令成功(服务运行中)则执行systemctl status||:前面命令失败(服务未运行)则执行systemctl start
方式二:使用 if 语句(更清晰,适合写脚本)
if systemctl is-active --quiet zabbix-agent; then
systemctl status zabbix-agent
else
systemctl start zabbix-agent
fi方式三:一行增强版(带提示)
systemctl is-active --quiet zabbix-agent && systemctl status zabbix-agent || systemctl start zabbix-agent && echo "已启动 zabbix-agent"三、只看服务状态和启动时间
1. 使用 systemctl show 获取关键属性
systemctl show zabbix-agent --property=ActiveState,SubState,ExecMainStartTimestamp输出示例:
ActiveState=active
SubState=running
ExecMainStartTimestamp=Wed 2026-06-10 11:23:37 CST2. 只显示启动时间(纯文本)
systemctl show zabbix-agent --property=ExecMainStartTimestamp --value输出:
Wed 2026-06-10 11:23:37 CST3. 格式化显示状态 + 启动时间
echo "服务状态: $(systemctl is-active zabbix-agent)"; echo "启动时间: $(systemctl show zabbix-agent --property=ExecMainStartTimestamp --value)"输出示例:
服务状态: active
启动时间: Wed 2026-06-10 11:23:37 CST4. 用 systemctl status 过滤关键行
systemctl status zabbix-agent | grep -E "Active:|Loaded:"输出示例:
Loaded: loaded (/etc/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2026-06-10 11:23:37 CST; 60ms ago5. 只判断是否运行(简洁)
systemctl is-active zabbix-agent && echo "运行中" || echo "未运行"四、systemctl status 输出详解
以下为一个实际输出的完整示例及逐行解释:
● zabbix-agent.service - Zabbix Agent (Extracted 5.0 armhf)
Loaded: loaded (/etc/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2026-06-10 11:23:37 CST; 60ms ago
Process: 15052 ExecStart=/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf (code=exited, status=0/SUCCESS)
Main PID: 15054 (zabbix_agentd)
Tasks: 3 (limit: 2065)
Memory: 2.8M
CPU: 143ms
CGroup: /system.slice/zabbix-agent.service
├─15054 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
├─15055 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
└─15056 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
Jun 10 11:23:37 pbsbc01h3 zabbix_agentd[15054]: Starting Zabbix Agent [pbsbc01h3]. Zabbix 5.0.47...
Jun 10 11:23:37 pbsbc01h3 systemd[1]: Started Zabbix Agent (Extracted 5.0 armhf).各字段含义说明
| 段落 | 含义 | 示例中的信息 |
|---|---|---|
| 标题行 | 服务名称与描述 | zabbix-agent.service - Zabbix Agent (Extracted 5.0 armhf) |
| Loaded | 配置文件路径、是否开机自启 | loaded /etc/systemd/system/... enabled |
| Active | 运行状态、启动时间、已运行时长 | active (running) since ... 60ms ago |
| Process | 启动时执行的命令及其退出状态 | status=0/SUCCESS |
| Main PID | 主进程 ID | 15054 |
| Tasks | 任务/线程数及系统限制 | 3 (limit: 2065) |
| Memory | 内存占用 | 2.8M |
| CPU | 已使用的 CPU 时间 | 143ms |
| CGroup | 控制组路径 | /system.slice/zabbix-agent.service |
| 进程树 | 所有子进程及其作用 | 主进程、collector、active checks |
| 日志块 | 最近的服务日志(通常 10 行) | 启动过程、功能支持、配置文件等 |
关键信息速查表
| 项目 | 命令或字段 | 状态值示例 |
|---|---|---|
| 是否运行 | Active | active (running) |
| 启动时间 | since ... | 2026-06-10 11:23:37 CST |
| 运行时长 | ago | 60ms ago |
| 是否开机自启 | enabled | enabled / disabled |
| 内存占用 | Memory | 2.8M |
| 进程数量 | Tasks | 3 |
五、常见操作小结
服务管理命令
systemctl start zabbix-agent # 启动
systemctl stop zabbix-agent # 停止
systemctl restart zabbix-agent # 重启
systemctl status zabbix-agent # 查看状态
systemctl enable zabbix-agent # 设置开机自启
systemctl disable zabbix-agent # 取消开机自启状态判断常用命令
systemctl is-active zabbix-agent # 输出 active/inactive
systemctl is-enabled zabbix-agent # 输出 enabled/disabled
systemctl show zabbix-agent # 显示所有属性六、适用环境
- Linux 发行版:CentOS / RHEL / Ubuntu / Debian / Rocky / AlmaLinux 等(使用 systemd)
- 服务名称:
zabbix-agent - 要求:具有 sudo 或 root 权限(如当前用户无权限,命令前加
sudo)
笔记整理完成,可直接复制保存为 .md 文件。