Linux如何在启动时自动启动带有脚本文件的可见终端

问题描述 投票:0回答:1

我已经看到了许多种启动脚本的方法,例如将其放入profile.D,rc.local或创建自动启动文件,但是根本没有一种方法在可见的窗口中启动文件。我需要它在Ubuntu中的可见窗口中。我需要这样做,因为我正在使用多个仿真器来流式传输到不同的服务,并且我不想必须手动在每个脚本上启动脚本。

我在模拟器中使用可视框。 sh文件位于可移动驱动器上,因为它是外部文件。我也需要它以sudo的身份运行。

编辑:实际上,我不需要它在启动时运行。我只需要运行脚本即可。我可能只睡了很长时间才能加载图形。

编辑2:因此,我创建了一个服务,该服务在/ usr / bin /中启动了一个sh文件,该文件应该创建一个运行我的脚本的gnome-terminal窗口。它运行了,但是由于某种原因它没有创建可见的窗口。然后,我尝试指定导致gnome异常运行的显示。 Dbus无法正确启动。另一个问题表明,由于gnome的设计和使用konsole的方式,gnome无法正常工作。 Konsole还指出,它无法连接到显示器,从而导致QXcbConnection错误。 Konsole没有指定显示的选项。我不知道还能尝试什么

编辑3:所以我做了评论中的事情。并且服务有效。但是,它仅在我运行每次重启后在usr / bin中手动运行服务的文件后才起作用。文件的重要部分:

 #!/bin/bash
sleep 60
ufw disable
ssh nateguana@$(hostname) -X
xhost +
*launch Gnome**only works after file ran manually*

我也尝试导出DISPLAY,并使用su更改用户。我还没有尝试导入SSHD(正如另一个问题所说的那样),因为我认为这仅适用于非本地连接。我还尝试了所有可能的命令排列。 Xhost错误,表明它无法连接以显示“”,有时无法显示“:0”。

linux terminal autostart
1个回答
0
投票

您可以使用gnome-terminal -e <command>生成一个运行命令的新bash终端。

您可以使用类似的东西>

gnome-terminal -e /path/to/bashfile

请记住,这将在执行完bash scipt之后结束终端。

为了避免这种情况,请在换行符的末尾添加$SHELL

PS:-e参数已弃用,在更高版本中可能会删除

© www.soinside.com 2019 - 2024. All rights reserved.