Skip to content

理解 systemd:把进程变成可管理的服务

手动运行程序适合开发,长期运行则需要明确回答:由谁启动、异常后怎么办、日志在哪里、使用哪个账号。systemd 把这些约定放进可检查的服务单元。

我最关注的配置

  • UserGroup:避免业务进程长期使用 root。
  • WorkingDirectory:让相对路径有确定含义。
  • EnvironmentFile:运行配置与发布物分开管理。
  • Restart=on-failure:异常退出后恢复,同时避免正常停止被反复拉起。
  • ExecStart:只执行一个清楚、可追踪的启动入口。

启动成功之后

systemctl is-active 只能说明 systemd 看到的状态。还要结合监听地址、健康接口和日志确认服务是否真的可用。对个人服务器而言,简单而明确的检查比堆叠很多自动化规则更容易维护。

修改单元的安全顺序

先保存旧配置,写入新文件后执行 systemd-analyze verify,再 daemon-reload 和重启目标服务。若健康检查失败,立即恢复旧配置并再次验证。这个顺序的重点是让失败也有确定出口。