我在虚拟机上使用 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