创建实时 USB Ubuntu 以运行没有桌面环境的应用程序

创建实时 USB Ubuntu 以运行没有桌面环境的应用程序

我需要创建一个 USB Live Ubuntu 来运行应用程序。我想在启动后以全屏模式打开我的应用程序,而无需为最终用户提供任何其他选项。

我读到如果我想运行没有桌面环境或显示管理器的应用程序,我应该使用 Gtk+ 或 Qt5,所以我使用 Gtk+ 创建了我的应用程序。

为了能够在没有桌面环境的情况下打开应用程序,我在 .bashrc 中添加了以下内容:

export DISPLAY=:0
while true; do ./myapp; done

我把它放在里面一段时间,因为有时我会收到以下错误:

Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
(myapp:4918): Gtk-WARNING **: cannot open display:

我想我试图在显示管理器运行之前运行该应用程序。

为默认用户启用自动登录会使 tty1 上的 .bashrc 执行,并且我的应用程序启动。

mkdir /etc/systemd/system/[email protected]
nano /etc/systemd/system/[email protected]/override.conf
    [Service]
    ExecStart=
    ExecStart=-/sbin/agetty --noissue --autologin ubuntu %I $TERM
    Type=idle

为了使其工作,我还需要进行编辑/usr/share/xsessions/ubuntu.desktop,以便它不会启动桌面环境。

我正在使用 Ubuntu 16.04。

它正在运行,但是有一些点我不明白。

1 - 这个问题的大多数答案都说要编辑 ubuntu.desktop 并将 exec 更改为我的应用程序,但我无法让它工作。它确实没有运行 Ubuntu 桌面,但我无法让它运行我的应用程序。我没有找到如何调试它失败的原因。

2 - 我读到 Gtk+ 和 Qt5 可以使用 Wayland,所以我没有桌面环境也没有显示管理器,我该怎么做?

3 - 您推荐哪种替代方案来获得相同的结果?我在 .bashrc 中执行的方式听起来有点黑客。

谢谢

相关内容