Una de las últimas actualizaciones del sistema operativo causó que un script cargado por launchctl fallara por permisos.
mi script hace esto para reflejar una ruta montada en mi disco:
rsync -av --delete
No tengo problema en ejecutarlo manualmente, pero al ejecutarlo desde el demonio estoy obteniendo:
construyendo lista de archivos ... rsync: opendir "." falló: Operación no permitida (1)
Estoy bastante seguro de que necesito otorgar permiso al script, pero no encontré una forma de otorgar el permiso desde Preferencias del Sistema -> Seguridad y Privacidad -> Privacidad -> Archivos y Carpetas. El [+/-] allí está en gris...
¿Alguna idea por favor?
EDICIÓN: más datos:
Mi plist: (com.mycompany.update-folder-from-nfs.plist)
Label
com.mycompany.update-folder-from-nfs
ProgramArguments
/Users/myname/Prog/something/uz-cpu/update_from_nfs_using_rsync.sh
StartInterval
45
Cargando el plist:
launchctl unload ~/Library/LaunchAgents/com.mycompany.update-folder-from-nfs.plist || echo "ok"
cp com.mycompany.update-folder-from-nfs.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.mycompany.update-folder-from-nfs.plist
0 votos
Cuando lo ejecutas, ¿lo ejecutas como tú o como root? ¿Son los caminos absolutos o relativos? LaunchAgents y Launch Daemons no necesitan permisos, se ejecutan como un usuario que especifiques o como root que ya tiene permisos. ¿Cómo están siendo ejecutados?
0 votos
Ya verifiqué eso escribiendo el registro en el archivo. El usuario soy yo.
0 votos
Podría ser mejor publicar la plist y mostrar cómo la estás cargando. Entonces podremos tener una mejor imagen
0 votos
Se agregó el plist como se solicitó. ¡Gracias!
0 votos
Creo que el problema es que tu script necesitará permiso de "acceso total al disco" y hasta donde yo sé no hay forma de otorgar eso a un script... Debe estar envuelto como una aplicación.