【发布时间】:2022-02-08 06:41:59
【问题描述】:
我很好地使用了命令“crontab -e”并添加了这个任务:
* * * * * * bash /home/user1/launcher.sh
launcher.sh 的内容是:
#!/bin/bash
PATH=/home/user1/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
/usr/bin/gedit
launcher.sh 的权限为 777。
我期待看到 gedit 每分钟都启动....但什么也没发生。为什么?
我认为 crontab 可以很好地启动“launcher.sh”,正如我在 syslog 中看到的那样:
Feb 7 22:58:01 librempc CRON[5922]: (user1) CMD (bash /home/user1/launcher.sh)
Feb 7 22:58:01 librempc CRON[5921]: (CRON) info (No MTA installed, discarding output)
【问题讨论】:
-
DISPLAY环境变量未在cron环境中设置,因此它无权访问 X 服务器。 -
正如@Barmar 提到的,您可以将“DISPLAY=:0”添加到您的 crontab 记录中,例如 * * * * * env DISPLAY=:0 /path/to/script ,也可以尝试将其作为您的作为 x-server 权限的用户不是 root 可能有其他意见
-
如果您尝试使用 cron,那么非交互式命令将是更适合的目标。例如,
date > /tmp/cron.timestamp。