暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python应用 systemd 服务配置

源话编程 2025-07-30
1453

👋 热爱编程的小伙伴们,欢迎来到我的编程技术分享公众号!在这里,我会分享编程技巧、实战经验、技术干货,还有各种有趣的编程话题!

以下是 FastAPI 项目生成的完整 systemd
 服务配置文件(.service
),包括后台运行和日志配置,适用于 Linux 服务器环境(如 Ubuntu)。


✅ 假设前提

配置项
示例值
Python 启动命令
/usr/local/bin/uvicorn main:app --host 0.0.0.0 --port 8000
项目路径
/home/youruser/fastapi-app
用户名
youruser
日志写入文件
/home/youruser/fastapi-app/server.log

✅ 第一步:创建服务文件

执行:

sudo nano etc/systemd/system/fastapi-app.service

粘贴以下内容:

[Unit]
Description=FastAPI App using Uvicorn
After=network.target

[Service]
User=youruser
WorkingDirectory=/home/youruser/fastapi-app
ExecStart=/bin/bash -c '/usr/local/bin/uvicorn main:app --host 0.0.0.0 --port 8000 >> server.log 2>&1'
Restart=always

[Install]
WantedBy=multi-user.target

📌 替换 youruser
 和 WorkingDirectory
 为你的实际用户名和项目路径


✅ 第二步:设置权限并启动服务

# 重新加载 systemd 配置
sudo systemctl daemon-reexec
sudo systemctl daemon-reload

# 启用开机自启
sudo systemctl enable fastapi-app.service

# 启动服务
sudo systemctl start fastapi-app.service

# 查看状态
sudo systemctl status fastapi-app.service

# 查看日志输出(Ctrl+C 退出)
tail -f home/youruser/fastapi-app/server.log


✅ 日志建议(可选)

可以在代码中使用:

logging.basicConfig(
    filename='app.log',
    level=logging.INFO,
    format='%(asctime)s [%(levelname)s] %(message)s',
    encoding='utf-8'
)

这样业务日志写入 app.log
,而服务运行日志写入 server.log
,互不影响。


日常学习记录,个人观点,仅供参考,非常感谢各位朋友们的支持与关注

如果你觉得这个作品对你有帮助,请不吝点赞在看,分享给身边更多的朋友。如果你有任何疑问或建议,欢迎在评论区留言交流。


文章转载自源话编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论