自定义 gdm 会话在 Ubuntu 18.04 上将我注销

自定义 gdm 会话在 Ubuntu 18.04 上将我注销

我有一个要求,沙盒用户只需要看到一个应用程序,而无需运行 Gnome 或任何 DE(基本上是一个信息亭设置)。

我在 /usr/share/xsessions 中创建了一个新.desktop文件,该文件运行一个启动并配置应用程序的 shell 脚本。但是,不久之后,整个会话就终止了(我猜是因为批处理文件结束了)。

我尝试过的一种方法是/bin/bash在其末尾添加一个以使其在后台运行,但这没有帮助。

看着这个问题似乎标准做法是让应用程序调用自身进入循环。但是,由于此应用程序的性质,我无法这样做。我需要先启动应用程序,然后再运行其他命令,然后再将控制权移交给用户。

这是我的脚本的简化版本:

google-chrome &
sleep 5
xdotool search --onlyvisible --name chrome windowmove %@ 0 0
/bin/bash # ??? doesn't work

答案1

对于将来遇到此问题的人,我通过运行一个循环来检查主应用程序窗口是否仍然打开来解决此问题。这既解决了保持会话活动的问题,也解决了用户关闭 Chrome 后注销的问题。

用下面的代码替换最后一行,它就可以很好地工作了:

while xdotool search --onlyvisible --name chrome; do sleep 3s; done

相关内容