在 ubuntu 启动时启动一个脚本

在 ubuntu 启动时启动一个脚本

我在虚拟机上使用 Ubuntu 14.04 LTS,并且尝试对其进行设置,以便当它启动时它也自动按照startmeup.sh.desktop启动脚本上的描述进行操作taskhome.sh

startmeup.sh.desktop脚本包含以下代码:

[Desktop Entry]
Type=Application
Exec=/home/kvm/scripts/taskhome.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en]=Startmeup
Name=Startmeup
Comment[en]=
Comment=

我把文件放在startmeup.sh.desktop文件夹中config\autostart,并使用命令使其可执行chmod +x,但是当我重新启动 Ubuntu 时,脚本taskhome.sh并未执行(我猜只是因为根本startmeup.sh.desktop没有执行)。

如果我taskhome.sh手动启动脚本,则不会出现任何问题。如果我打开包含脚本 startmeup.sh.desktop 的文件夹并双击它,则脚本可以taskhome.sh顺利启动。

但是,如果我尝试使用该startmeup.sh.desktop命令在终端上执行脚本,./startmeup.sh.desktop则会收到错误“

line 1: [Desktop: command not found.

我能做些什么让脚本在 Ubuntu 启动时运行吗?

答案1

从终端运行./startmeup.sh.desktop将不起作用,因为它.desktop不是 shell 脚本。

另外添加:

Terminal=true

这可能会有帮助!

要在启动时启动应用程序,您需要按照通常的方式执行:

答案2

等一下,你把脚本放在哪个文件夹中?你的 Q 说config\autostart...它应该放在~/.config/autostart(你的主文件夹中),并且应该在用户登录时运行,而不仅仅是在启动时运行(除非该用户也自动登录)

你没有Icon=...线,但这可能不会带来很大的差别。

那么脚本应该做什么?它没有设置为在终端中运行(Terminal=true可能会这样做),那么您如何知道它没有在后台运行?

答案3

尝试使用这个改变“Exec=”模式:

Exec=gnome-terminal -x /home/kvm/scripts/taskhome.sh

-x 的手册页:

-x, --execute
Execute the remainder of the command line inside the terminal.

应该是这样的:

[Desktop Entry]
Type=Application
Exec=gnome-terminal -x /home/kvm/scripts/taskhome.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en]=Startmeup
Name=Startmeup

相关内容