【问题标题】:Run Script in Foreground On Boot Raspberry Pi在引导树莓派的前台运行脚本
【发布时间】:2018-10-11 23:07:44
【问题描述】:

我有一个要在启动时运行的脚本,我想使用键盘与脚本进行交互。我已成功将其设置为在 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)

请有人指出我正确的方向吗?

【问题讨论】:

  • 你试过xdotool吗?如果你想要的话,它会以编程方式模拟击键和鼠标点击。
  • 感谢您的回复。我不是在尝试模拟击键,而是从键盘记录实际的击键。我相信我需要脚本在启动时在前台运行才能执行此操作。

标签: python linux python-2.7 raspberry-pi crontab


【解决方案1】:

我发现了如何在启动时运行脚本并允许键盘与程序交互。在 ~/.bashrc 文件中,我附加了:

sudo python /home/pi/example.py

【讨论】:

  • 我做了类似的事情。我在 .bashrc 文件中使用了别名来实际调用脚本。 IE。 aslias 123456789 = 'sudo python ...py'
【解决方案2】:

如果我理解正确,您希望您的程序将其标准输入附加到 tty1? IE。如果您连接了显示器,您在屏幕上看到的终端 - 如果未安装 X windows 或未使用 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

【讨论】:

    【解决方案3】:

    您可以通过在 /etc/rc.local 中添加一行来在引导时在前台运行脚本

    根据我的经验,这很有效,特别是如果 Raspberry pi 配置为在启动时等待网络可用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多