Ubuntu系统下用systemd管理Python脚本的完整指南
1. 为什么选择systemd管理Python脚本
在Linux服务器环境中,确保关键服务持续运行是运维工作的基本要求。想象一下,当你的Python数据分析脚本因为服务器重启而中断,或者因为异常退出导致数据处理流程停滞,这会给业务带来多大影响?systemd作为现代Linux系统的初始化系统,提供了比传统init.d更强大的进程管理能力。
与简单的nohup或screen方式不同,systemd能实现:
- 自动重启:脚本异常退出时自动恢复
- 日志集中管理:无需额外配置即可查看历史运行日志
- 依赖管理:确保数据库等依赖服务就绪后再启动脚本
- 资源控制:限制CPU/内存使用,避免脚本耗尽系统资源
我曾为一个电商客户部署价格监控脚本时,最初使用crontab每分钟检查进程是否存在。后来改用systemd后,不仅减少了30%的资源占用,还解决了日志分散的问题。下面分享的实战经验,都是这类真实场景中积累的最佳实践。
2. 创建基础服务单元文件
在/etc/systemd/system/目录下创建你的服务文件,例如data_processor.service:
[Unit]
Description=电商价格监控服务
After=network.target postgresql.service
Requires=postgresql.service
[Service]
User=appuser
Group=appuser
WorkingDirectory=/opt/scripts
Environment="PYTHONPATH=/opt/scripts"
ExecStart=/usr/bin/python3 /opt/scripts/price_monitor.py
Restart=on-failu

&spm=1001.2101.3001.5002&articleId=155405343&d=1&t=3&u=9358d4af1a7e4b0ba36a7d357322499c)
682

被折叠的 条评论
为什么被折叠?



