我正在使用我的Raspberry Pi创建一个闹钟。
想法是禁用闹钟 - 我必须输入一个随机生成的数字序列。
如何安排此python脚本通过cron运行,允许用户从键盘输入?
或者如果不可能 - 我将如何创建一个可以在设定时间运行的一般术语,并接受用户输入?
这个Raspberry Pi正在无头运行,我的应用程序大声说出这些数字,但为了简单起见,我在这里略过了它。
import random
s = str(random.randint(10, 99))
print s
while True:
question = raw_input("Enter code as above: ")
if question == s:
print "Alarm Disabled"
break
else:
print "Wrong Code. Try Again"
这是在星期一到星期五早上7:30运行的cronjob:
crontab -e 30 7 * * 1-5 sudo python /home/pi/alarmclock.py
编辑:好的,我有一个解决方法:
如果我使用GUI运行Rasberry Pi:
startx
安装" xterm"并将我的crontab更改为:
crontab -e 30 7 * * 1-5 DISPLAY=:0 xterm -e /usr/bin/python /home/pi/alarmclock.py
有效。我只是希望我可以在没有运行X的情况下启动它(可能是应用程序焦点问题而我的文本没有输入到正确的窗口中)
答案 0 :(得分:0)
您可以尝试使用命名管道。要创建它,请运行mkfifo /home/pi/pipe
。更改crontab调用:python /home/pi/alarmclock.py </home/pi/pipe
。
要输入代码,请运行:
$ cat >/home/pi/pipe
Enter the code here and press Enter
Press Ctrl-D to signal EOF
虽然它允许以异步方式输入输入,但可能会破坏闹钟的目的。