![如何在启动时以非 root 用户身份运行 python 脚本](https://linux22.com/image/147210/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E4%BB%A5%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%20python%20%E8%84%9A%E6%9C%AC.png)
我编写了以下脚本,该脚本应该在启动时更改目录,然后以 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
。