我正在构建一个简单的SDL应用程序,一个brewery应用程序,在我的车库中运行。我正在寻找一种直接的方式来让我的应用程序在启动时运行,并且不提供对系统的其他访问。如果我需要改变任何东西,我将能够使用rsh来改变板子上的东西。一位朋友告诉我,我可以通过某种方式修改lightdm脚本很容易做到这一点,但还没有找到这样的引用。
该设备运行ubuntu 14.4。
如有任何建议,我们将不胜感激。
也许:
我可以转到~/.xinitrc并将我的应用程序路径放在exec行上吗?如果我的应用程序全屏运行?
发布于 2017-08-02 03:49:51
如果它是一个全屏SDL应用程序(kiosk风格),那么我的建议是使用普通的X。
也就是说,不要运行任何WindowManager或CompositionManager,您不需要它们。不要运行任何DesktopManager或Greeter,你也不需要它们。
当系统启动时,只需将X服务器与应用程序一起运行,就好像它是WM一样。例如来自rc.local的。我认为Ubuntu 14支持将其作为非root用户运行:
su - user -c /usr/bin/startx /usr/bin/myapp请注意,您可能需要在后台手动运行一些应用程序。您的myapp实际上是一个运行这些应用程序然后运行您的程序的脚本,这可能是一个好主意。
或者,您可以运行不带参数的startx,它将自动运行/home/user/.xinitrc。
在脚本中,您可以编写所有的备份程序(使用&),最后一行应该是您的程序(通常使用exec /usr/bin/myapp,不使用&)
~/.xinitrc
xsetroot -solid gray & #set the background
exec xterm #run a terminal作为一个扩展示例,您可以查看您的/etc/X11/xinit/xinitrc,如果您没有指定任何脚本,这将是默认脚本。
这样做之后,您仍然有几个热键可以访问系统。我能想到的是:
但所有这些都很容易被禁用。无论如何,如果可能的话,隐藏键盘并使用全触摸屏系统会更好。但是要注意任何可用的USB端口!
然后是启动过程。您需要保护grub以避免更改引导选项。和BIOS,并禁用“更改引导顺序”选项(如果可用)。
然后是对硬件的访问(USB端口、螺钉、电源按钮),但这取决于您安装的安全要求。
https://stackoverflow.com/questions/45445152
复制相似问题