systemd 服务怎么写
Linux系统
2026-10-03 17:47
1
写对 ExecStart 与 Restart 两项,服务就稳了一大半。同一件事有很多种做法,选哪种取决于你的系统版本和线上是否允许中断。
下面按“先判断范围、再处理、最后防复发”的顺序展开,涉及 systemd、服务配置 的关键动作都给了具体做法,可以照着走。
基本结构
[Unit] [Service] [Install] 三段,Type 常用 simple。
拿不准的时候先做备份再做变更,成本最低。
自动重启
Restart=always、RestartSec=5。
容易踩的坑:最容易出问题的是细节不一致:版本、路径、参数任意一处对不上,现象就和预期差很远。
环境变量
Environment 或 EnvironmentFile 显式声明。
需要留痕的操作,把时间点和现象一起记下来,复盘时最有用。
生效
daemon-reload 后 enable 再 start。
速查表
| 环节 | 关键动作 |
|---|---|
| 基本结构 | [Unit] [Service] [Install] 三段,Type 常用 simple |
| 自动重启 | Restart=always、RestartSec=5 |
| 环境变量 | Environment 或 EnvironmentFile 显式声明 |
| 生效 | daemon-reload 后 enable 再 start |
常见问题
Q:systemd这类问题,最快的判断办法是什么?
先确认现象的范围:只有单台还是全部、只在某个时段还是持续。范围一缩小,原因基本就浮出来了。
Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。
小结
回到这篇的四个环节:基本结构、自动重启、环境变量、生效。生产环境优先考虑稳定性,新参数先在小流量机器上验证。