服务文件
systemd 适合把长期运行的程序变成系统服务。以 Node Exporter 为例,创建:
/etc/systemd/system/node_exporter.service
示例内容:
[Unit]
Description=Node Exporter
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
正式服务建议使用专门用户运行,不要随手用 root。
启用服务
重新加载 systemd:
systemctl daemon-reload
启动并设为开机自启:
systemctl enable --now node_exporter
查看状态:
systemctl status node_exporter
常用排查
看日志:
journalctl -u node_exporter -b --no-pager
检查端口:
ss -ltnp
检查服务文件是否被 systemd 正确解析:
systemctl cat node_exporter
systemd-analyze verify /etc/systemd/system/node_exporter.service
写服务文件的习惯
Description写清楚服务用途。After和Wants只写真实需要的依赖。ExecStart用绝对路径。Restart按服务类型选择。- 修改后记得
daemon-reload。
systemd 不难,难的是把服务边界写清楚。