启动时启动 Python 脚本并在终端中显示输出

Launch a Python script upon startup and show the output in a terminal

提问人:Jacob 提问时间:10/17/2023 最后编辑:Christoph RackwitzJacob 更新时间:10/17/2023 访问量:63

问:

我是 Python 的新手,并且使用 Raspberry Pi,我遇到了一个看似简单的问题,但事实证明,这对我这个初学者来说是相当具有挑战性的。尽管我进行了研究,但我还没有找到合适的解决方案。

我的目标是让 Python 脚本在 Raspberry Pi 启动时自动运行。但是,我还想在终端窗口中查看脚本的输出。

我在目录 /home/pi/.config/autostart 中放置了一个 .desktop 文件,它包含以下内容:

[Desktop Entry]
Version=1.0
Name=autostartProgram
Exec=/usr/bin/python3 /home/pi/Documents/autostart.py
Terminal=true

我知道它正在工作,因为我听到继电器咔嗒声,表明我的 GPIO 输出正在工作。此外,我看到 USB 摄像头上的红灯,确认 Python 脚本正在访问摄像头。一切似乎都在工作,除了终端没有打开,阻止我看到我的脚本的输出。:(

这可能很重要,我在具有 64GB RAM 的 Raspberry Pi 4B 上运行 Raspberry OS 8 位 Legacy 版本;Pi 会自动加载到桌面,无需用户输入密码。

python linux 终端 raspberry-pi 自动启动

评论

0赞 Mark Setchell 10/17/2023
启动时运行的程序通常不会在终端中运行,因为 1) 在用户登录之前通常无法显示终端,以及 2) 因为系统不知道谁将登录,因此终端将属于谁。因此,启动作业通常会写入日志文件,您可以使用 读取/跟踪这些日志文件。journalctl
0赞 Jacob 10/17/2023
@MarkSetchell 如果我启用了自动登录,这是否也适用?因为 Pi 会自动加载到桌面,然后我听到继电器发出的咔哒声,看到相机的红灯。
0赞 Mark Setchell 10/17/2023
我并不是说你不能拥有终端 - 我只是说程序不倾向于这样做。另一个原因是服务器通常位于“熄灯”服务器机房中,因此没有人可以看到终端窗口(实际上它们甚至很少有屏幕),但管理员可以通过远程登录并读取日志。ssh
0赞 Mark Setchell 10/17/2023
也许您的终端正在运行,但它完成得太快了,您看不到它。您可以尝试在文本字符串结束之前读取用户的文本字符串,以便它一直保留在屏幕上,直到您输入某些内容。
0赞 Jacob 10/17/2023
该脚本在循环中循环访问图像分类模型。我需要程序在不等待用户输入的情况下运行,主要是因为没有连接键盘。很有可能有人想要将监视器连接到 Pi 以查看图像分类模型的置信度。我对实现这一目标的任何方法都持开放态度。你对我如何实现它有什么想法吗?@MarkSetchell(顺便说一句,感谢您的回复!老实说,我没想到有人会在这里注意到我的问题。

答: 暂无答案