Raspberry Pi 4B,在 Boot 时使用串行端口运行Python脚本

o4hqfura  于 2022-12-05  发布在  Python
关注(0)|答案(3)|浏览(152)

我目前正在Raspberry Pi 4 Model B上使用crontab在 Boot 时启动我的python脚本。

@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脚本,一切正常,但当它在 Boot 时运行时,串行通信不工作
我已经尝试在我的python脚本中添加一些延迟,以等待串行接口完全初始化,但它仍然不起作用。
提前感谢您的任何帮助

**EDIT:**我必须澄清,如果我运行

sh /home/pi/start.sh > /home/pi/logs/cronlog 2>&1 &

然而,如果我在 Boot 时用crontab运行它,唯一不起作用的是串行通信(用示波器查找信号,它不通过串行接口发送数据),但程序的其他方面都运行得很好。

e5nqia27

e5nqia271#

很可能是cron在串行接口初始化之前执行,导致python脚本引发异常。
这可以通过添加相对较小的延迟(即:30秒)插入到python脚本中,看看它是否正常工作。
如果脚本只需要运行一次,一个简单的解决方法是使用autostart文件而不是cron。此文件中的命令仅在成功启动gui后运行。此文件位于/etc/xdg/lxsession/LXDE-pi/autostart

gojuced7

gojuced72#

试试这个:
1.开放终端
1.运行sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
1.将此行添加到文件中:

@path/app_name

1.保存并退出

r1zhe5dt

r1zhe5dt3#

I also use Raspberry pi4.
I reccomend you use crontab -e without sudo .
My crontab -e like this:
@reboot bash /usr/bin/start_counter.sh
My /usr/bin/start_counter.sh :

#!/usr/bin/bash
while true
do
    python3 /home/pi/people_counter_android/main.py
done

In my way its work. I hope this help you.

相关问题