我有一段小小的 crontab 代码,每 15 分钟截取一次我的 Mac 的屏幕截图,作为日记功能,帮助我完成所有管理工作。几年来,它一直运行良好,但最近它开始只截取桌面和顶部的状态栏,屏幕上没有应用程序,底部没有应用程序停靠栏,桌面上甚至没有应用程序图标或文件。
如果我在终端中手动运行它,代码可以正常工作,但在 crontab 中会出现问题。
我尝试重新安装 crontab,但未能解决问题。现在我已经没有办法修复这个问题了。
我如何让 crontab 与屏幕捕获一起工作以便将应用程序也显示在屏幕上?
我正在运行 Mac Catalina 版本 10.15.1。
*/15 * * * * /usr/sbin/screencapture -Cxd -tjpg ~/Documents/AutoScreenShot/screen-
date +"\%Y\%m\%d-\%H\%M"
.jpg
答案1
昨天下午我遇到了同样的问题,经过几个小时的尝试,我解决了。问题是 cron 没有屏幕访问权限。
这是解决方案
- 关闭 SIP。
重启Mac并按住cmd+r进入恢复模式,打开终端输入csrutil disable
,再次重启
- 授予TCC写入权限
sudo chmod 664 /Library/Application\ Support/com.apple.TCC
- 授予 cron 和 screencapure 屏幕捕获权限
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "/usr/sbin/cron", 1, 1, 1, "", "", "", "UNUSED", "", 0,"")'
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "/usr/sbin/screencapture", 1, 1, 1, "", "", "", "UNUSED", "", 0,"")'
- 重新启用 SIP
重启Mac并按住cmd+r进入恢复模式,打开终端输入csrutil enable
,再次重启