在Raspberry Pi 2中通过cron执行包含GPIO命令的python脚本 环境 树莓皮2 拉斯宾·杰西·利特 Windows 8.1 油灰0.66(SSH) 问题
无法让cron使用sudo执行python脚本。该脚本处理GPIO输入,因此应该使用sudo调用它。该程序应该将温度和湿度保存到文件中,但在Raspberry Pi 2中通过cron执行包含GPIO命令的python脚本 环境 树莓皮2 拉斯宾·杰西·利特 Windows 8.1 油灰0.66(SSH) 问题,python,linux,cron,raspberry-pi2,gpio,Python,Linux,Cron,Raspberry Pi2,Gpio,无法让cron使用sudo执行python脚本。该脚本处理GPIO输入,因此应该使用sudo调用它。该程序应该将温度和湿度保存到文件中,但cat temp.txt和cat湿润.txt给了我空字符串 克朗塔布 sudo crontab-e * * * * * python /home/dixhom/Adafruit_Python_DHT/examples/temphumid.py 1>>/tmp/cronoutput.log 2>>/tmp/cronerror.log p
cat temp.txt
和cat湿润.txt
给了我空字符串
克朗塔布
sudo crontab-e
* * * * * python /home/dixhom/Adafruit_Python_DHT/examples/temphumid.py 1>>/tmp/cronoutput.log 2>>/tmp/cronerror.log
python脚本
cronerror.log和cronoutput.log
(空)
我试过的
sudo crontab-e
- cron中的
/usr/bin/python
(cron打开)chkconfig cron
sudo-apt-get-update
sudo-apt-get-update
sudo重启
任何帮助都将不胜感激。谢谢。选项1:您可以编辑
/etc/crontab
。在那里,您可以在计划之后的列中指定哪个用户应执行相应的作业
选项2:使用
sudo su
crontab -e
我会选择第二种选择,因为这是他们建议的
(免责声明:没有关于GPIO内容的担保。我只是假设您对“需要sudo”的看法是正确的,因为我从来没有在raspi上执行GPIO。因此,我只将运行脚本称为root。)问题在于相对路径。数据被保存到一个不同于我所看到的地方 改变
f = open("humid.txt","w")
到
解决问题。谢谢。但是我尝试了这些,问题仍然存在。我假设脚本在交互调用时工作并产生输出。当它现在以root运行时,我认为它也将以root的主目录作为工作目录运行。由于脚本使用相对路径,您的文件将放置在那里…没错。。。关键是相对路径。我找不到根目录,所以我修复了程序,将数据保存到绝对路径,结果成功了!谢谢,我的荣幸。在这种情况下,请随意接受答案;)
f = open("humid.txt","w")
f = open("/home/dixhom/Adafruit_Python_DHT/examples/humid.txt","w")