我这里有一个 BeagleBone Black,运行 Debian 8.3、Linux 4.1.15-ti-rt-r43。台式机是LXQT。
启动后,我想运行一个 .sh 文件 - 当桌面环境准备好时,因为该文件在更改路径并设置一些变量后,调用 mono 来启动基于 GUI 的程序。
使用“开始菜单”:
首选项 -> LXQt 设置 -> 会话设置 -> 自动启动
我添加了一个条目,首先在“全局自动启动”下,然后在“LXQt 自动启动”下(一次只选中两个框之一)。我在“命令”下通过“搜索...”按钮指定了我的 .sh 脚本的路径,即不会出现输入错误。我尝试了两者,“等待系统托盘”选中,未选中。点击“关闭”,每次尝试通过开始菜单重新启动机器。
桌面启动后,没有其他任何事情发生。不过,该脚本在 ssh remote* 命令提示符下运行良好 - 应用程序启动。此外,将其复制到桌面并单击它 - 有效。
_* .sh 文件包含“export DISPLAY=:0”行,因为它首先用于通过 ssh 启动以启动 GUI 应用程序。我评论了它,看看这是否会改变这里的任何东西,它没有。
编辑:所以我现在已经在~/.config/autostart中手动制作了一个.desktop文件- 注意我在 UI 中单击时在该文件夹中创建的 .desktop 文件,如上所述。在我的文件中,我指定了启动我的 .sh 脚本的路径等,并将一个额外的选项设置为 true:“终端”,它指定自动启动程序应该在终端中运行。这样做是为了向我展示——是的,确实,一些东西在启动/加载桌面环境后启动,因为终端是可见的,即我的自动启动文件不会被忽略。但是我的 .sh 脚本中的“echo”命令没有显示在那个终端上,我的单声道应用程序也没有启动。如果我然后打开另一个远程外壳,并复制+粘贴我在“Exec”下的自动启动 .desktop 文件中给出的路径,它会按预期启动我的应用程序 - 所以路径是正确的。
那么,那里发生了什么?LXQt 桌面显然找到了我的文件,尝试自动启动,但它什么也没做。可能的原因?我想(不知道这一切是如何在幕后工作的),也许单声道/GUI 还没有准备好,即使桌面加载了,出于某种有趣的原因,我放了一个回声“正在睡觉......”,睡眠 30 秒,在我的 .sh 文件中调用应该自动启动的单声道应用程序之前,回显“调用单声道应用程序...”。在启动时打开的终端中,这些都看不到,也无济于事。