我想在 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
您需要确保您有运行这两个脚本的权限。