captura de pantalla de mac crontab solo tiene escritorio

captura de pantalla de mac crontab solo tiene escritorio

Tengo un pequeño código crontab que toma una captura de pantalla de mi Mac cada 15 minutos, como un diario para ayudarme con todos los trabajos administrativos. Ha estado funcionando bien durante algunos años, pero recientemente comenzó a ocupar solo el escritorio y la barra de estado en la parte superior, sin aplicaciones en la pantalla, sin bases de aplicaciones en la parte inferior, ni siquiera íconos de aplicaciones o archivos en mi escritorio.

El código funciona bien si lo ejecuto manualmente en la terminal, pero falla en crontab.

Intenté reinstalar el crontab pero no se solucionó. Y ahora no tengo trucos para solucionar este problema.

¿Cómo hago para que crontab funcione con captura de pantalla para que las aplicaciones también aparezcan en la pantalla?

Estoy ejecutando una Mac Catalina versión 10.15.1.

*/15 * * * * /usr/sbin/screencapture -Cxd -tjpg ~/Documents/AutoScreenShot/screen-date +"\%Y\%m\%d-\%H\%M".jpg

Respuesta1

Tuve el mismo problema ayer por la tarde y después de horas intentándolo, lo solucioné. El problema es que el cron no tiene acceso a la pantalla.

Aquí está la solución

  1. cerrar SIP.

reinicie Mac y mantenga presionado cmd+r en modo de recuperación, abra la entrada del terminal csrutil disable, reinicie nuevamente

  1. otorgar permiso de escritura a TCC

sudo chmod 664 /Library/Application\ Support/com.apple.TCC

  1. otorgar privilegios de captura de pantalla a cron y captura de pantalla
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,"")'
  1. Volver a habilitar SIP

reinicie Mac y mantenga presionado cmd+r en modo de recuperación, abra la entrada del terminal csrutil enable, reinicie nuevamente

información relacionada