Bash

如何在啟動時以非root使用者身份執行python腳本

  • January 29, 2019

我編寫了以下腳本,它應該在啟動時更改目錄,然後以 pi 使用者身份執行腳本(在樹莓派上):

#!/bin/bash
echo 'raspberry' | sudo su - pi -c 'cd /home/pi/workspace/counting-objects && python3 script.py

如果我執行腳本,我會收到以下錯誤:

Traceback (most recent call last):
 File "script.py", line 23, in <module>
   from custom_module...
ImportError: No module named 'custom_module'

如果我在登錄時手動更改文件夾,然後從控制台執行相同的腳本,一切都會按預期工作。

有誰知道如何修復 bash 腳本以便在更改目錄後以 pi 使用者身份正確執行腳本?

謝謝!

sudo完全避開 shell 腳本,因為不需要它而將其丟棄,並在pi使用者的 cron 表中添加:

@reboot cd /home/pi/workspace/counting-objects && python3 script.py

通過以使用者身份登錄pi,並使用crontab -e.

引用自:https://unix.stackexchange.com/questions/497546