Ale*_*hev 5 macos cron screenshot screen-capture macos-catalina
在 macOS 上,Catalina 在通过 cron 制作屏幕截图时遇到问题。当手动运行do_screenshot.sh脚本时,一切都很好。但是当它在 cron 上自动运行时 - probs,只有菜单正确,而不是窗口内容显示 macOs 背景(见图)
do_screenshot.sh:
#!/bin/bash
DATEFULL=`date '+%Y%m%d%H%M%S'`
FILENAME="/Users/yak/Documents/screenshots/"$DATEFULL.png
/usr/sbin/screencapture -x $FILENAME
Run Code Online (Sandbox Code Playgroud)
更新后也遇到这个问题。花了几个小时学习细节,这是原因和方法。功劳归于大圈。原来的问答在这里。
问题是 cron 没有屏幕访问权限。
这是解决方案
关闭 SIP(系统完整性保护)。
确保您的 SIP 已禁用。检查 SIP 是否被禁用。到终端并输入csrutil status。它应该说 SIP 状态:启用/禁用。要禁用它:
关闭 Mac,再次启动并按住 cmd+r 直到出现 OS X Utilities 窗口。打开终端类型csrutil disable。再次重启,进入正常的mac os。
授予 TCC 写权限
sudo chmod 664 /Library/Application\ Support/com.apple.TCC
将 screencapure 权限授予 cron 和 screencapture
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 可能是个好主意。要启用它,请按照第 1 步操作,而csrutil disable不仅仅是键入csrutil enable。
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |