在 Linux 登录屏幕上启动程序

在 Linux 登录屏幕上启动程序

当我启动 Linux 设备时,我想在设备的登录屏幕出现时(或在此之前)运行一个程序。主要问题是在没有用户登录的情况下运行应用程序。例如 Java JFrame Forms 或 python tkinter)

我是否可以在没有用户登录的情况下打开应用程序?

我尝试使用 crontab 但没有成功。我想,解决方案可能是“init.d”,所以我尝试了这个,但我无法在我的树莓派上运行它。我不太明白如何将 init.d 与 java 或 python 一起使用。

实际上,我想要使用的设备是 Jetson Nano。 (我正在使用树莓派,因为我目前没有它。)我想知道在树莓派上不起作用的东西是否可以在jetson nano上工作?或者说除了这些还有其他的解决办法吗?

谢谢。

答案1

是的,可以设置一个应用程序,使其在专用于该目的的用户帐户上运行,并且无需登录即可在本地 GUI 显示屏上使用。这称为“信息亭设置”或“信息亭模式”。

谷歌搜索“raspberry pi kiosk mode”,你会发现很多例子:大多数都chromium-browser配置为固定的全屏模式运行,窗口管理器功能受到限制,但你可以用任何其他 GUI 程序代替。 (unclutter如果您不需要隐藏鼠标指针,也可以省略。)

通常,为单个帐户设置 GUI 自动登录并将其配置为在简约的窗口管理器中运行应用程序是最简单的方法。

如果您想进一步减少软件数量,您可以研究如何startx工作并编写一个自定义init.d脚本来使用其中一个startx,甚至xinit一起启动 X11 服务器和您的应用程序,要么根本没有窗口管理器,要么使用一个适当配置的简约窗口管理器。这将是更困难的方法,但几乎可以保证您在此过程中了解很多有关 X11 会话设置的复杂性的知识:-/

如果您希望在 GUI 登录屏幕上显示某些内容在正常的登录对话框旁边,那么您应该找到 X Display Manager 服务的 GUI 会话启动脚本,并自定义它们以在准备登录对话框的显示时启动您的应用程序:例如,使用gdm3,将内容添加到登录屏幕的正确位置将会/etc/gdm3/Init/Default

请注意,出于安全原因,显示管理器可能希望在从登录屏幕转换到登录会话时重置 X11 服务器,反之亦然,因此可能无法在登录屏幕中启动您的应用程序并拥有登录会话。在会话中“继承”对它的访问:您可能必须重新启动应用程序作为 GUI 登录序列的一部分。

相关内容