gpt4 book ai didi

linux - 使用 LXDE session 自动启动 GUI 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:09 24 4
gpt4 key购买 nike

关于这个主题有很多信息,但出于某种原因我就是无法使用它。这是在 raspian 发行版上运行“DietPi”风格的 raspberry pi 上的,这也许是我的问题与其他问题的区别。

所以我有一个 GUI 应用程序,我希望在 LXDE session 开始后启动。所以我在这里使用了以下文件:

/etc/xdg/lxsession/LXDE/autostart

并添加了一行:

@/myapplication

这有效,但是,它会启动该程序的多个实例,而第一个实例总是崩溃。这会产生问题,因为存在对资源(IO、文件等)的竞争。所以我所做的是创建脚本文件/myapplication-autostart.sh 而不是像这样:

if pgrep "myapplication" > /dev/null
then
echo "my application is already running"
else
/myapplication
fi

然后将/etc/xdg/lxsession/LXDE/autostart 更改为@/myapplication-autostart.sh。现在我发现程序启动了一次,但实例崩溃了。它在尝试创建窗口 (opencv imshow) 时崩溃。这很奇怪,因为如果 X session 不可用,程序也会 headless 运行,但由于某种原因它崩溃了,我不知道在哪里检查原因。

此外,为了测试这不是脚本文件的问题,我注释掉了除/myapplication 之外的所有内容,我发现脚本文件在连续循环中运行,每次我关闭应用程序时它都会重新打开。我也不确定为什么会这样。

我试过在脚本中添加 sleep 延迟,但没有用。无论出于何种原因,LXDE 自动启动脚本在启动 pi 时似乎至少运行了 3 次,而第一次的情况导致程序崩溃。有人了解调用此自动启动脚本的顺序和行为吗?

最佳答案

也可以使用 XDG 标准自动启动 - 它独立于所使用的桌面环境 - 通过将桌面文件放在

  • $XDG_CONFIG_HOME/autostart(默认~/.config/autostart)
  • 或在 $XDG_CONFIG_DIRS/autostart(默认为 /etc/xdg/autostart)进行系统范围的自动启动。

这样的 .desktop 文件可能如下所示:

[Desktop Entry]
Type=Application
Version=1.0
Name=JDownloader
Exec=/usr/local/bin/my-application.sh
Categories=Utilities

桌面文件的规范可以在 freedesktop.org 找到.

关于linux - 使用 LXDE session 自动启动 GUI 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com