运行 启动时前台脚本 Raspberry Pi

Run Script in Foreground On Boot Raspberry Pi

我有一个 运行 启动脚本,我想使用键盘与脚本交互。我已经在 crontab 中成功将其设置为 运行;但是,脚本 运行s 在后台,我无法使用键盘与脚本交互。这是该脚本的一个简化示例:

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)

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

如果我理解正确的话,您希望您的程序将其标准输入附加到 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

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

sudo python /home/pi/example.py

您可以 运行 通过向 /etc/rc.local

添加一行来在启动时在前台运行脚本

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