首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在覆盆子皮上自动启动一个猕猴桃

在覆盆子皮上自动启动一个猕猴桃
EN

Stack Overflow用户
提问于 2022-11-23 11:26:03
回答 1查看 29关注 0票数 1

我正在尝试拥有一个在raspberry pi 4启动后自动启动的kivy GUI,运行无头的raspbian (安装了一个窗口管理器)。为此,我在/etc/rc.local中添加了以下行

代码语言:javascript
复制
su -c /home/pi/dummyfolder/run_gui pi

调用的脚本是

代码语言:javascript
复制
#!/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。查看日志can的输出,我可以验证我的脚本是否正在运行。

当我手动运行shell脚本时,会显示GUI。当我直接运行rc.local时,情况也是如此。因此,我假设引导序列中存在一个问题,即显示脚本所需的服务尚未运行。

有人知道问题是什么吗?还是引导序列假设是正确的?

编辑:有人提议在raspy中设置等待网络。但是,我不能这样做,因为gui必须在没有网络的情况下运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 21:58:56

我做类似的事情,除了不运行窗口管理器。Kivy应用程序占据了整个屏幕。我使用~/..bashrc文件并将我想要的放在最后。最简单的方法是在.bashrc文件的末尾启动应用程序,但是有一些额外的东西可以使它更好。您可以将python命令放入一个单独的脚本文件中,此外,这段代码还会注意到是否已经完成ssh,因此当您登录进行维护时,它不会在终端会话启动时运行您的kivy应用程序。

在下面的示例中,my_fun将是启动python/kivy应用程序的脚本。

代码语言:javascript
复制
# at the end of ~/.bashrc
if [[ $SESSION_TYPE == "remote/ssh" ]]; then

    is_running=$(pgrep -l python)
    # echo "${is_running}"
    if [ -n "$is_running" ]; then
       echo -e "\n\n\033[01;31m============================================"
       echo "----- WARNING a Python Process is running ---------"
       echo -e "================================================\033[0m\n\n"
    fi
    echo -e "this is a remote session so the menu will not be presented"
    return 1

else
    echo -e "pause some seconds to wait for network interfaces..."
    sleep 12s
    ifconfig | grep netmask
    sleep 1s
    echo "direct console session"
    my_fun
fi

编辑了以添加以下内容:检测会话类型的代码,当然,在使用该变量之前必须放置会话类型。

代码语言:javascript
复制
# is this a remote terminal or not
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
    SESSION_TYPE=remote/ssh
    # many other tests omitted
else
    case $(ps -o comm= -p $PPID) in
        sshd|*/sshd) SESSION_TYPE=remote/ssh;;
    esac
fi
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74546028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档