![Gnome 登录后的 Linux 启动脚本](https://linux22.com/image/600527/Gnome%20%E7%99%BB%E5%BD%95%E5%90%8E%E7%9A%84%20Linux%20%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC.png)
我有一台 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 - 我又做了一些测试,它确实开始工作了,但我必须先删除 Terminal=True,xterm 才会弹出。谢谢你的帮助。
答案1
这只是猜测,但看起来原始的“myscript.sh”只是启动了 Python 脚本。您没有终端,所以它不知道要打开终端。如果是这种情况,您需要在 myscript.sh 中明确启动一个终端,并在该终端内启动 Python 脚本。类似于“xterm -e”的命令应该可以做到这一点(这是我的糟糕记忆,我没有 xterm 的手册页,所以请不要逐字逐句地尝试)。