Eu tenho um pequeno código crontab que faz uma captura de tela do meu mac a cada 15 minutos, como um diário para me ajudar em todos os trabalhos administrativos. Ele está funcionando bem há alguns anos, mas recentemente começou a ocupar apenas a área de trabalho e a barra de status na parte superior, sem aplicativos na tela, sem encaixes de aplicativos na parte inferior, nem mesmo ícones de aplicativos ou arquivos na minha área de trabalho.
O código funciona bem se eu executá-lo manualmente no terminal, mas funciona no crontab.
Tentei reinstalar o crontab, mas não resolveu. E agora estou sem truques para consertar isso.
Como faço para que o crontab funcione com captura de tela para colocar os aplicativos na tela também?
Estou executando um Mac Catalina versão 10.15.1.
*/15 * * * * /usr/sbin/screencapture -Cxd -tjpg ~/Documents/AutoScreenShot/screen-
date +"\%Y\%m\%d-\%H\%M"
.jpg
Responder1
Tive o mesmo problema ontem à tarde e depois de horas tentando, consegui. O problema é que o cron não tem acesso à tela.
Aqui está a solução
- feche o SIP.
reinicie o Mac e mantenha pressionado cmd + r no modo de recuperação, abra a entrada do terminal csrutil disable
e reinicie novamente
- conceder permissão de gravação ao TCC
sudo chmod 664 /Library/Application\ Support/com.apple.TCC
- conceder privilégio screencapure para cron e 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,"")'
- Reativar SIP
reinicie o Mac e mantenha pressionado cmd + r no modo de recuperação, abra a entrada do terminal csrutil enable
e reinicie novamente