Cron 无法运行 gnome-terminal

Spa*_*rky 4 command-line cron

我在本地机器上设置了以下 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
Run Code Online (Sandbox Code Playgroud)

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

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

Jan*_*ary 10

Cron 不知道当前显示在哪里(从它的角度来看,可能有许多正在运行),因此它不能——轻松——启动图形终端。如果你是机器上唯一一个只有一个 X 会话的用户,你可以尝试定义你的 DISPLAY 变量

export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)

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

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