Ubuntu - 在启动时使用可见终端运行 bash 脚本

Ubuntu - 在启动时使用可见终端运行 bash 脚本

我想在 Ubuntu 20.04 启动时运行一个 bash 脚本终端可见。test.sh 文件位于 /usr/bin/test.sh。我可以让 test.sh 文件在启动时运行,但不会在可见的终端窗口中运行。

test.sh内容:

#! /bin/bash
echo "hello";

我无法让它工作,我已尝试过(单独):

Crontab(带或不带‘&’以及带或不带“sudo”)

@reboot bash test.sh &

@reboot /usr/bin/test.sh &

@reboot DISPLAY=:0 xterm -hold -e bash -c "bash test.sh" &

@reboot DISPLAY=:0 xterm -hold -e bash -c "bash /usr/bin/test.sh" &

启动应用程序命令

sudo bash /usr/bin/test.sh
bash /usr/bin/test.sh
/usr/bin/test.sh

在 /etc/systemd/system/testService.service 创建服务

[Unit]
Description = Test Service

[Service]
WorkingDirectory= /usr/bin
ExecStart= /usr/bin/test.sh

[Install]
WantedBy=multi-user.target

并启动、启用和检查状态..

systemctl start testService.service
systemctl enable testService.service
systemctl status testService.service

但无法启动。

任何帮助/指明更好的方向都将不胜感激!

答案1

要在运行脚本时出现 GUI 终端窗口:

添加到“启动应用程序”(在命令下):

bash test.sh

test.sh内容:

#! /bin/bash
    DISPLAY=:0.0 xterm -hold -e bash helloWorld.sh

helloWorld.sh的内容:

#! /bin/bash
echo "hello";

对我来说,这会在登录时打开一个 XTerm 终端窗口并运行 helloWorld.sh 脚本。

答案2

尝试以下操作。创建一个新脚本(称为 on_load.sh),如下所示,该脚本的作用是加载您的实际脚本。您可以通过在 ~/.config/autostart 中添加一个条目来使该脚本在启动时运行

我不确定 Ubuntu 是否在设置中具有自动启动功能。我在 KDE Plasma 中设置了自动启动,它是自动的。

#! /bin/bash
konsole --noclose --workdir ~/usr/bin/ -e 'bash -c "~/usr/bin/test.sh; exec bash"' &

如果你不知道如何将上述脚本放入 ~/.config/autostart,以下是它在我的文件中的样子。KDE Plasma 在我的 ~/.config/autostart 中创建了一个名为 on_load.sh.desktop 的新文件

该文件如下所示:

[Desktop Entry]
Exec=/home/my_username/Documents/scripts/on_load.sh
Icon=dialog-scripts
Name=on_load.sh
Path=
Type=Application
X-KDE-AutostartScript=true

您需要确保您有运行这两个脚本的权限。

相关内容