我一直试图让我的屏幕每半小时锁定一次,但到目前为止效果不佳,因为 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