我有一个在启动时运行的脚本,我想使用键盘与脚本进行交互。我成功地将其设置为在crontab中运行;但是,脚本在后台运行,我无法使用键盘与脚本进行交互。这是脚本的简化示例:
def write_to_txt(item_to_write):
with open("my_txt_file.txt", "a") as myfile:
myfile.write('\n'+str(item_to_write))
while True:
keys_to_enter = raw_input()
write_to_txt(keys_to_enter)
请有人指出我正确的方向吗?
答案 0 :(得分:2)
我发现了如何在启动时运行脚本并允许键盘与程序进行交互。在〜/ .bashrc文件中,我附加了:
sudo python /home/pi/example.py
答案 1 :(得分:0)
如果我理解正确,您希望程序将其stdin附加到tty1?即如果你有一个显示器连接你在屏幕上看到的终端 - 如果没有安装X窗口或者没有用Ctrl + Alt + Fx切换tty,默认情况下键盘输入会结束?
将后台脚本进程的所有权移到tty1上的shell一个选项吗?如果是这样,最简单的可能是auto-login the Pi(或者用户需要在启动时使用键盘登录)。然后在tty1上自动启动程序,使其stdin / stdout与tty1绑定。
为了实现后者,我认为你可以把它的调用放到一个bash启动脚本中,就像这里建议的那样:https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=7192
答案 2 :(得分:0)
您可以通过在/etc/rc.local中添加一行来在启动时在前台运行脚本
根据我的经验,这很有用,特别是如果Raspberry pi被配置为在引导时等待网络可用