我目前正在为带触摸板的 Raspberry Pi 编写一个带有 GUI 的应用程序。目前,每当我将新的二进制文件从具有开发环境的 PC 传输到 pi 时,我都必须将键盘插入 pi 并使用 启动应用程序startx /path/to/binary
。一段时间后,这变得有点烦人,所以我希望能够通过 ssh 从开发 PC 启动 gui。
我已经知道如果已经有 X Server 正在运行,如何远程启动它。不幸的是,到目前为止这对我没有帮助,因为我无法使 X Server 保持打开状态,因为一旦客户端程序终止,它就会立即终止。但我不想运行桌面或窗口管理器,因为我只需要单个应用程序窗口。
现在回答我的问题。如何让 X Server 保持打开状态?到目前为止是否有我忽略的选项或其他解决方法?或者对于我的问题是否有更好的解决方案,但完全不相关?
答案1
也许在你的末尾添加一个半无限睡眠.xinitrc
,例如sleep 5000000
?请注意&
,该命令末尾没有字符。
通常,您可以在此处放置窗口管理器或会话管理器命令,但您说您不需要其中之一,因此您需要另一个长时间运行的程序来保持 Xserver 处于活动状态。
睡眠将消耗零资源。
答案2
您可以自动重新启动 X 服务器,而不是尝试保持 X 服务器打开。在你的 Pi 上运行
while :; do startx /path/to/binary; done
这样,每当您更新二进制文件时,您都可以终止它,并且 X 服务器将使用新的二进制文件重新启动。
如果您需要能够停止此操作,您可以添加一个条件,例如
until [ -f /tmp/stop ]; do startx /path/to/binary; done
每当你想退出循环时,
touch /tmp/stop
然后终止你的程序——它不会重新启动。