我试图有一个kivy GUI,它在raspberry pi 4上运行headless raspbian(安装了窗口管理器)后自动启动。为此,我在 /etc/rc.local 中添加了以下行:
su -c /home/pi/dummyfolder/run_gui pi
调用的脚本为
#!/bin/bash
# this stops the sleeping screen
killall light-locker
# set display - allows execution over ssh
export DISPLAY=:0
python3 /home/pi/dummyfolder/gui.py -a &
当我重新启动我的raspberry pi时,我看不到GUI。查看journalctl的输出,我可以验证我的脚本是否正在运行。
当我手动运行shell脚本时,会显示GUI。当我直接运行rc. local时也是如此。因此,我假设启动序列中存在问题,即显示脚本所需的服务尚未运行。
有人知道问题出在哪里吗?或者 Boot 序列假设是否正确?
编辑:有人建议在raspy-config中设置wait-for-network。但是,我不能这样做,因为GUI必须在没有网络的情况下运行。
1条答案
按热度按时间yebdmbv41#
我做了一些类似的事情,除了我不运行窗口管理器。Kivy应用程序占据了整个屏幕。我使用~/.bashrc文件,并把我想要的放在最后。最简单的是在.bashrc文件的最后启动应用程序,但有一些额外的东西,使它更好。您可以将python命令放到一个单独的脚本文件中,此外,这段代码会注意到您是否使用了ssh,以便在您登录进行维护时,它不会“不要在终端会话启动时运行kivy应用程序。
在下面的示例中,my_fun是启动python/kivy应用程序的脚本