如何在启动时以非 root 用户身份运行 python 脚本

如何在启动时以非 root 用户身份运行 python 脚本

我编写了以下脚本,该脚本应该在启动时更改目录,然后以 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 用户身份正确运行脚本?

谢谢!

答案1

sudo完全避开 shell 脚本,因为不需要它而丢弃它,并在pi用户的 cron 表中添加:

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

以用户身份登录pi并使用 编辑表crontab -e

相关内容