我做了一个小java程序,在完成一些其他任务(例如从网络上读取数据和在文件上写入数据)后,该程序最终显示一个对话框。我的目标是让它在每次系统启动时延迟 90 秒运行。 (@reboot sleep 90;...)。它已经很好地完成了所有工作(它正确创建了我想要的文件),但问题是它不显示对话框。如果我手动运行脚本,它会按我想要的方式工作。
这是脚本:
#!/bin/bash
javac /home/eneko/workspace/Comprobación\ página/src/Main.java
java -classpath /home/eneko/workspace/Comprobación\ página/src/ Main
exit 0
这就是我在 crontab 上写的内容(我将其设置为每分钟运行一次,只是为了尝试它是否可以在不重新启动的情况下工作):
* * * * * export DISPLAY=:0 && /home/eneko/Documentos/scriptComprobacionPagina.sh
我认为问题在于export DISPLAY=:0
它的解释这里。但尝试之后我担心我错过了一些东西。我什至无法像示例中那样运行 amarok。
提前致谢!
答案1
我认为 cron 是实现我的目标的唯一方法,但我错了,因为 cron 是用于启动后台作业的。然后我尝试创建一个.desktop
文件并将其添加到启动应用程序并且它起作用了。该文件位于其中~/.config/autostart
,内容如下:
[Desktop Entry]
Type=Application
Name=Comprobacion
Exec=/home/eneko/Documentos/scriptComprobacionPagina.sh
Icon=
Comment=Sin comentario
X-GNOME-Autostart-enabled=true