【发布时间】:2021-08-01 20:25:00
【问题描述】:
我目前在 Raspberry Pi 4 Model B 上使用 crontab 在启动时启动我的 python 脚本。
我在sudo crontab -e 的底部添加了这个:
@reboot sh /home/pi/start.sh > /home/pi/logs/cronlog 2>&1 &
我的start.sh 脚本是这样的:
#!/bin/sh
# start.sh
cd /home/pi/Desktop/Python_Scripts/Projet
sudo python3 main.py
如果我手动运行 shell 脚本,一切正常,但是在启动时运行,串行通信不起作用。
我已经尝试在我的 python 脚本中添加一些延迟以等待串行接口完全初始化,但它仍然不起作用。
提前感谢您的任何帮助
编辑:我必须澄清如果我运行脚本会完美运行
sh /home/pi/start.sh > /home/pi/logs/cronlog 2>&1 &
在命令行中。但是,如果我在启动时使用 crontab 运行它,唯一不起作用的是串行通信(使用示波器查找信号,它不通过串行接口发送数据)但程序的其他所有方面都运行良好.
【问题讨论】:
-
如果这是在
root的crontab中,你不需要sudo;你已经是root。这甚至有可能导致错误。 -
#!bin/sh错误;它正在当前目录中查找目录bin,然后在其中查找sh。你想要#!/bin/sh -
请查看Cron job not running 了解标准故障排除提示。
-
@tripleee 我已经尝试过使用和不使用 sudo,但它们都没有工作......我在发布问题时忘记了 bin 之前的
/,但它在脚本中,谢谢我编辑问题谢谢,我去查一下
标签: python python-3.x cron raspberry-pi raspberry-pi4