我正在Raspberry Pi上开发一个简单的应用程序,通过从USB读取配置文件来自动配置WiFi。为了测试这个概念,我创建了一个简单的udev规则,在usb上调用下面的脚本“Add”。此代码基于几年前的堆栈溢出问题。你知道吗
#!/bin/sh
logger -s "Running autoconfigure."
# Run Python code
sudo -H -u pi sh -c "nohup /usr/bin/python /home/pi/datalogger/autocopy.py &"
ret=$?
if [ $ret -ne 0 ]; then
logger -s "Returned error: $ret"
fi
exit
Python代码是:
# Raspberry Pi autocopy scripts to copy a File from USB to /home/pi on USB insert
# Requires udev rule:
# KERNEL=="sd*1", ACTION=="add", RUN=="/home/pi/datalogger/autocopy.sh"
# or similar
import shutil
import syslog
import sys
f= open("/home/pi/datalogger/temp.txt","w+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
source="/home/pi/datalogger/temp.txt"
destination="/home/pi/datalogger/test.txt"
syslog.syslog(sys.version)
try:
shutil.copyfile(source, destination)
except shutil.Error as e:
syslog.syslog(e)
exit(1)
except shutil.IOError as e:
syslog.syslog(e)
exit(1)
except:
syslog.syslog(sys.exc_info())
exit(1)
syslog.syslog("Completed normally")
exit(0)
所有这些代码所做的就是创建和复制一个文件,就像插入USB密钥所触发的那样(剩下的可以稍后再做)。问题是文件不会创建或复制,脚本也不会出错(尽管它们确实在运行)。Python代码返回一个“1”代码,表示可能有错误。如果我以pi用户的身份手动运行,脚本会像sudo用户那样完美地工作。作为测试的一部分,我已经放宽了所有权限。我真的不知道该去哪里找?日志中没有指出代码有问题。任何建议/指导都将不胜感激。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐