Cron 无法运行 gnome-terminal

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文件中给出的绝对路径是正确的。当我直接在终端中输入命令时,它起作用了。

答案1

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

export DISPLAY=:0.0

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

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

相关内容