要在樹莓派 (Pi 3) 開機時自動執行帶有 Python 虛擬環境 (venv) 的腳本,最推薦使用 systemd 服務(穩定可靠)或透過修改 autostart 檔案(適用於圖形界面登入後)來達成,重點在於確保腳本能激活虛擬環境 (source venv/bin/activate),再運行你的 Python 程式。
方法一:使用
systemd (推薦,最穩健)- 建立啟動腳本 (start_venv_app.sh):
- 設定權限:
chmod +x start_venv_app.sh
- 設定權限:
- 建立
systemd服務檔案 (例如/lib/systemd/system/my-python-app.service): - 啟動與設定開機啟動:
方法二:修改
LXDE-pi autostart (適用圖形界面登入後)- 開啟 autostart 檔案:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart. - 加入啟動指令 (開啟終端機並執行):
@lxterminal -e "/bin/bash -c 'source /path/to/your/venv/bin/activate && python3 /path/to/your/app.py'".- 或者在同目錄下創建一個腳本文件(如
my_script.sh包含source ... && python3 ...)給它執行權限,然後@lxterminal -e /path/to/my_script.sh.
- 或者在同目錄下創建一個腳本文件(如
方法三:使用
cron (用於定時任務或用戶登入)- 使用者登入時執行 (crontab -e):
@reboot /bin/bash -c 'source /path/to/your/venv/bin/activate && python3 /path/to/your/app.py'.
重要提示:
- 路徑:記得將所有
/path/to/...替換為你實際的虛擬環境和 Python 程式路徑。 - 權限:確保你的 Python 程式和腳本有執行權限 (
chmod +x)。 - venv激活:
source /path/to/venv/bin/activate是關鍵,它會讓後續的python3指令使用虛擬環境中的 Python.
要在 Raspberry Pi (Python 3) 實現開機自動於背景啟動程式,最推薦且符合 2026 年 Linux 標準的方法是使用 systemd。
以下是設定步驟:
1. 建立服務設定檔
在系統服務目錄中建立一個
.service 檔案(例如 my_script.service):2. 寫入服務內容
將以下內容貼上,並修改
ExecStart 為你的 Python 路徑與檔案路徑:3. 啟動並啟用服務
執行以下指令讓系統載入新服務並設定開機啟動:
4. 管理與除錯
- 查看狀態:
sudo systemctl status my_script.service - 停止服務:
sudo systemctl stop my_script.service - 查看背景輸出日誌:
journalctl -u my_script.service -f
其他替代方案
- crontab (最簡單): 執行
crontab -e並加入@reboot python3 /path/to/script.py &。雖然簡單,但不如 systemd 穩定且難以管理日誌。 - rc.local: 較舊的方法,在現代 Raspberry Pi OS 中已逐漸被 systemd 取代,不建議優先使用。
若需要更詳細的教學,可參考 Raspberry Pi 官方文件 (systemd)。
沒有留言:
張貼留言