使用 cron 设置 $DISPLAY

使用 cron 设置 $DISPLAY

我一直试图让我的屏幕每半小时锁定一次,但到目前为止效果不佳,因为 cron(或技术上我的客户端 cronie)会抛出错误并且不执行任何操作。以下错误(来源于systemctl status cronie):

pam_unix(crond:session): session opened for user uk000(uid=1000) by (uid=0)
(uk000) CMD (XAUTHORITY=~/.Xauthority && DISPLAY=:0 && slock)
(uk000) CMDOUT (slock: cannot open display)
(uk000) CMDEND (XAUTHORITY=~/.Xauthority && DISPLAY=:0 && slock)
pam_unix(crond:session): session closed for user uk000

我的$DISPLAY变量已设置.zshrc,cron 中使用的命令在执行时正常运行。我已尝试使用另一个屏幕锁定程序,但出现了类似的错误。

目前,cron 作业看起来像(为了调试目的,它每分钟运行一次)

* *   * * * XAUTHORITY=~/.Xauthority && DISPLAY=:0 && slock

(我也尝试过不同的显示器,但无济于事)

答案1

使用 cronie 时需要定义环境变量,而我定义错了。一个有效的 crontab 如下所示

*/20 *   * * * export DISPLAY=:0; slock

相关内容