当我启动 Linux 设备时,我想在设备的登录屏幕出现时运行程序(或在此之前。主要问题是在没有用户登录的情况下运行应用程序。例如 Java JFrame Forms 或 python tkinter)
我可以在没有用户登录的情况下打开应用程序吗?
我尝试使用 crontab 但没有用。我想,解决方案可能是“init.d”,所以我尝试了这个,但我无法在我的树莓派上运行它。我不太明白如何将 init.d 与 java 或 python 一起使用。
实际上,我想要使用的设备是 Jetson Nano。(我正在使用树莓派,因为我目前没有它。)我想知道在树莓派上不起作用的东西是否可以在 jetson nano 上工作?或者除了这些还有其他解决方案吗?
谢谢。
是的,可以设置应用程序,使其在专用于该目的的用户帐户上运行,并且无需登录即可在本地 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 登录序列的一部分,您可能必须重新启动应用程序。