我有一个 Fedora 服务器,我想在用户登录后生成一个交互式 python 脚本。该脚本将询问用户配置系统的各种类型的信息,或者它将搜索以前的配置文件并向他们显示预定义的信息。最初我打算把它放在 rc.local 中或让它与 init.d 一起运行,但由于脚本的生成方式,这搞砸了引导。所以我希望这个脚本在用户登录 Gnome 时立即运行。我搜索了很多,发现这个答案似乎正是我想要的,但它并没有按照我想要的方式工作。下面是我的条目。
[Desktop Entry]
Name=MyScript
GenericName=Script for initial configuration
Comment=I really want this to work
Exec=/usr/local/bin/myscript.sh
Terminal=true
Type=Application
X-GNOME-Autostart-enabled=true
每当我登录时,什么也没有发生。所以我然后做了一个测试来修改“myscript.sh”以将一些文本回显到一个文件并且它工作正常。所以看起来不起作用的部分是脚本弹出终端并等待用户输入。我需要添加任何其他选项才能使这项工作正常进行吗?当我从 CLI 运行 /usr/local/bin/myscript.sh 时,我可以确认它工作正常。我也尝试添加“StartupNotify=true”,但仍然没有成功。
编辑@John - 我尝试将我的 Exec= 移动到 /usr/local/bin/myscript-test ,这就是 myscript-test 包含的内容。
#!/bin/bash
xterm -e /usr/local/bin/myscript.sh
再一次,当我运行 myscript-test 时它工作正常。但是,当我将其放入自动启动时,什么也没有发生。
编辑 2 - 我做了一些更多的测试并且它确实开始工作但是我必须在 xterm 弹出之前删除 Terminal=True 。谢谢你的帮助。
这只是一个猜测,但它看起来像原始的“myscript.sh”只是启动 Python 脚本。你没有终端,所以它不知道打开一个。如果是这种情况,您需要在 myscript.sh 中显式启动一个终端,并在该终端内启动 Python 脚本。类似于“xterm -e”的东西应该可以做到(那是公认的糟糕记忆,而且我没有 xterm 可用的手册页,所以请不要逐字尝试)。