Python 在我的Raspberry Pi上找到闪存驱动器并执行给定程序的Shell文件

Python 在我的Raspberry Pi上找到闪存驱动器并执行给定程序的Shell文件,python,linux,shell,usb,raspberry-pi,Python,Linux,Shell,Usb,Raspberry Pi,我正在研究一个机器人,我需要能够快速加载新代码。到目前为止,我已经用尽了我的其他选择(包括使用micro sd卡。我们更愿意将其保留在pi中以防止丢失。尽管如此,我们仍将自动运行文件放在microsd卡上)。我正在Raspberry Pi上运行Arch Linux。我需要的是一个shell文件,它在启动时自动运行(或者当插入闪存驱动器时)。shell文件需要运行名为main.py的python程序和名为update.sh的.sh文件。我不是要你给我一个完全符合我要求的文件(尽管我很感激),而是我

我正在研究一个机器人,我需要能够快速加载新代码。到目前为止,我已经用尽了我的其他选择(包括使用micro sd卡。我们更愿意将其保留在pi中以防止丢失。尽管如此,我们仍将自动运行文件放在microsd卡上)。我正在Raspberry Pi上运行Arch Linux。我需要的是一个shell文件,它在启动时自动运行(或者当插入闪存驱动器时)。shell文件需要运行名为
main.py
的python程序和名为
update.sh
.sh
文件。我不是要你给我一个完全符合我要求的文件(尽管我很感激),而是我在寻找做这件事所需要的资源。如果有帮助的话,在任何给定的时间只有一个USB闪存驱动器。

这可以使用
udev
规则来完成。首先,您需要使用
lsusb
记下USB的一些属性:

$ lsusb
Bus 003 Device 011: ID 0bc2:2100 Seagate RSS LLC 
现在,这里

Vendor ID  ==> 0bc2
Product ID ==> 2100
为您的特定USB驱动器记录它们。现在,在新文件
/etc/udev/rules.d/myrule.rules
中创建一个新的udev规则,并在其中添加此行:

ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="2100", RUN+="/home/main.py"
ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="2100", RUN+="/home/update.sh"

这可以使用
udev
规则来完成。首先,您需要使用
lsusb
记下USB的一些属性:

$ lsusb
Bus 003 Device 011: ID 0bc2:2100 Seagate RSS LLC 
现在,这里

Vendor ID  ==> 0bc2
Product ID ==> 2100
为您的特定USB驱动器记录它们。现在,在新文件
/etc/udev/rules.d/myrule.rules
中创建一个新的udev规则,并在其中添加此行:

ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="2100", RUN+="/home/main.py"
ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="2100", RUN+="/home/update.sh"

我知道这个答案已经晚了,但也许它会在将来帮助别人

更一般地说,您可以在.rules文件中创建行:

KERNEL==”sd[a-z]”, SUBSYSTEM==”block”, ACTION==”add”, RUN+=”/home/pi/filename.sh”  
我没有幸直接从udev运行python文件,但我创建了一个.sh文件,并从中运行python文件

filename.sh:

#!/bin/sh
Python /home/pi/PythonScriptName.py

我知道这个答案已经晚了,但也许它会在将来帮助别人

更一般地说,您可以在.rules文件中创建行:

KERNEL==”sd[a-z]”, SUBSYSTEM==”block”, ACTION==”add”, RUN+=”/home/pi/filename.sh”  
我没有幸直接从udev运行python文件,但我创建了一个.sh文件,并从中运行python文件

filename.sh:

#!/bin/sh
Python /home/pi/PythonScriptName.py

我对RPi一无所知,但是这个链接有帮助吗?不,对不起。我的主要问题是使用shell和/或python程序访问USB。我对RPi一无所知,但这个链接有帮助吗?不,对不起。我的主要问题是使用shell和/或python程序访问USB。我对RPi一无所知,但这个链接有帮助吗?不,对不起。我的主要问题是使用shell和/或python程序访问USB。