工程实践 / Linux 部署
模型服务的启动、停止与 PID 文件陷阱
重复启动、端口占用和失效 PID 如何让部署脚本误报成功。
问题模型
后台脚本启动进程后将 PID 写入文件。如果服务已经存在,第二次启动可能因为端口占用立即退出,却覆盖原来正确的 PID。
正确的启动检查
启动前应同时检查:
- PID 文件对应的进程是否仍然存在。
- 目标端口是否已经被监听。
- 监听进程是否确实是目标服务。
不要过早报告成功
脚本写入 PID 后应等待短暂健康检查,确认进程存活且接口可访问,再输出启动成功。
建议
生产环境优先交给 systemd 或容器编排系统管理生命周期。自定义脚本也要做到幂等、可观测并支持明确失败。