Cron无法运行gnome-terminal

我在本地机器中设置了以下cron。

* * * * * /bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh

open-console.sh的内容如下: –

 #! /bin/sh gnome-terminal --full-screen --hide-menubar -e /home/JSX/Stuff/J/login-check/handle-user.sh 

它应该在终端中打开另一个sh脚本。 但什么都没发生。 还有什么我需要做的吗? 比如重新启动某项服务或其他东西让cron作业开始运行?

***文件中给出的绝对路径是正确的。 当我直接在终端输入命令/bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh ,它工作正常。

Cron不知道当前显示器的位置(从它的角度来看,可能有很多运行),所以它不能 – 轻松 – 启动图形终端。 如果您是只有一个X会话的机器的唯一用户,则可以尝试定义DISPLAY变量

 export DISPLAY=:0.0 

open-console.sh ,但我不确定它是否会起作用。

cron的主要目的是启动在指定时间点在后台运行的非交互式服务。 其他任务应该用dbus和ConsoleKit处理,但这有点复杂,请看这个问题 。