Cronjob 没有运行,但是通过调度程序运行

Cronjob 没有运行,但是通过调度程序运行

我有这个文件 show.sh 的脚本

#!/bin/sh
zenity --warning --text "here"

在 crontab 中我有这一行

* * * * * /home/user/Public/show.sh

然后我重新启动了我的 crontab

user@user-170:~/Public$ sudo /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop cron ; start cron. The restart(8) utility is also available.
cron stop/waiting
cron start/running, process 5672
user@user-170:~/Public$

但是我在等待,什么也没有发生,当我打开计划任务软件并从那里运行脚本时,会显示一个弹出窗口。

为什么这不能从 crontab 运行?

答案1

两个错误

应该有“=”

--text="here"

并添加--display=:0.0以显示输出

/usr/bin/zenity --warning --text="here"  --display=:0.0

现在它运行得非常好!

答案2

您错误地设置了 cron,请在 cron 中输入如下内容

*/1 * * * * /bin/sh /home/user/Public/show.sh

这将每分钟执行一次脚本。

还要使用命令确保脚本具有执行权限

chmod +x /home/user/Public/show.sh

相关内容