news 2026/5/1 4:58:23

树莓派上部署 Python 服务并配置 systemd 开机自启

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派上部署 Python 服务并配置 systemd 开机自启

树莓派上部署 Python 服务并配置 systemd 开机自启

最近把一个采集脚本从笔记本迁到了树莓派,顺手把部署流程整理了一遍。树莓派常年开机、功耗低,用来跑轻量服务确实很合适。本文记录一个最常用的落地方案:在树莓派上部署 Python 服务,并通过 systemd 配置开机自启。## 1. 环境准备建议先把系统更新到最新,避免后续因为依赖版本导致问题:bashsudo apt update && sudo apt upgrade -ysudo apt install -y python3 python3-venv python3-pip如果你的服务需要访问 GPIO、串口或者摄像头,也可以提前把对应权限和驱动准备好。## 2. 创建项目目录我习惯把自己的服务统一放到/opt下面,便于后续维护:bashsudo mkdir -p /opt/pi-services/sample-appsudo chown -R $USER:$USER /opt/pi-services/sample-appcd /opt/pi-services/sample-app接着创建虚拟环境并安装依赖:bashpython3 -m venv .venvsource .venv/bin/activatepip install --upgrade pippip install flask这里用 Flask 起一个最小可运行示例,实际项目替换成你自己的依赖即可。## 3. 编写一个最小服务创建app.pypythonfrom flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return {'status': 'ok', 'message': 'raspberry pi service is running'}if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)本地直接启动测试:bashsource .venv/bin/activatepython app.py浏览器访问http://树莓派IP:5000/,能看到返回结果就说明基础环境没问题。## 4. 用 systemd 配置开机自启新建服务文件:bashsudo nano /etc/systemd/system/sample-app.service写入以下内容:ini[Unit]Description=Sample Python App on Raspberry PiAfter=network.target[Service]Type=simpleUser=piWorkingDirectory=/opt/pi-services/sample-appExecStart=/opt/pi-services/sample-app/.venv/bin/python /opt/pi-services/sample-app/app.pyRestart=alwaysRestartSec=5[Install]WantedBy=multi-user.target这里有两个细节值得注意:-WorkingDirectory要指向项目根目录-ExecStart最好写虚拟环境里的 Python 绝对路径,避免环境变量不一致保存后执行:bashsudo systemctl daemon-reloadsudo systemctl enable sample-app.servicesudo systemctl start sample-app.service查看运行状态:bashsudo systemctl status sample-app.servicejournalctl -u sample-app.service -f如果配置正确,重启树莓派之后服务也会自动拉起。## 5. 实际使用中的几个建议### 日志不要只看标准输出开发阶段直接print没问题,但长期运行建议至少接入文件日志或者让 journald 配合日志轮转,不然排查问题会比较痛苦。### 服务依赖外设时,启动顺序要额外注意如果程序依赖 USB 设备、挂载盘或者摄像头,单纯After=network.target可能还不够,需要根据实际依赖增加等待条件。### 建议固定 IP 或做局域网域名映射树莓派一旦承担家庭网关、小服务节点、下载器或者监控任务,固定地址会省掉很多排障时间。## 6. 小结树莓派跑轻量 Python 服务非常顺手,关键是把部署方式标准化。用虚拟环境隔离依赖,用 systemd 托管进程,后续无论是更新脚本、迁移设备还是排查故障,都会轻松很多。如果你后面还要继续挂 Nginx、做反向代理、接入 HTTPS,或者把多个服务统一托管,我觉得也很值得单独整理一套模板。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 4:58:23

Mem Reduct多语言配置终极指南:5种方法实现界面无缝切换

Mem Reduct多语言配置终极指南:5种方法实现界面无缝切换 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …

作者头像 李华
网站建设 2026/5/1 5:37:25

雷士照明护眼灯怎么样?书客、雷士、米家三大护眼大路灯实测比拼

作为一名长期关注家居护眼灯的测评博主,实测过市面上不少护眼大路灯发现,很多所谓护眼灯看起来参数出众,但在实际使用中光线直射、蓝光偏高或亮度不均匀的情况下,长期使用可能导致眼睛疲劳、干涩,甚至加速视力下降&…

作者头像 李华
网站建设 2026/5/1 4:58:24

DownKyi哔哩下载姬:3步掌握B站视频下载的完整方案

DownKyi哔哩下载姬:3步掌握B站视频下载的完整方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xff0…

作者头像 李华
网站建设 2026/5/1 4:58:25

Sage智能体平台实战:从架构解析到自动化工作流部署

1. Sage Agent Platform:从复杂任务到可靠交付的生产级智能体平台如果你和我一样,在过去一年里尝试过各种AI智能体框架,从AutoGPT到LangChain,再到各种层出不穷的开源项目,那你一定体会过那种“理想很丰满,…

作者头像 李华
网站建设 2026/5/1 4:58:29

题解:AtCoder AT_awc0005_b Updating the Report Card

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大…

作者头像 李华