7 votos

¿Cómo evitar que la aplicación Fotos se inicie con cloudphotosd, photoanalysisd, etc?

Algunos de los servicios en segundo plano utilizados por la aplicación Fotos realizan funciones de las que no estoy interesado en beneficiarme (y en algunos casos, no quiero activamente). Principalmente son photoanalysisd y cloudphotosd. Estoy bastante seguro de que el primero no es estrictamente necesario para que la aplicación Fotos funcione (si es necesario para algunas funciones); estoy un poco menos seguro sobre el último, pero esa no es precisamente la pregunta clave. (photolibraryd soy consciente de que la aplicación lo necesita para funcionar correctamente en absoluto, por lo que no lo estoy tocando).

Donde parece que estoy atascado es que su inicio no parece respetar launchctl disable. De hecho, launchctl print gui/$UID incluye ambos demonios dentro de la sección de servicios deshabilitados, con la bandera establecida en true, mientras que ninguno está en ejecución, y la aplicación Fotos seguirá activando su inicio tan pronto como se inicie. No los está habilitando en launchd, ya que las banderas permanecen sin cambios cuando compruebo después de probar iniciando la aplicación Fotos.

Dado la posibilidad de que los esté deshabilitando en el dominio incorrecto de launchd, intenté deshabilitarlos en el dominio system, sin éxito: la aplicación Fotos aún inicia estos dos servicios tan pronto como se inicia.

También intenté usar el patrón heredado launchctl unload -w en el archivo correspondiente .plist en /System/Library/LaunchAgents/, pero launchctl me informó en ese caso que no se pudo encontrar el servicio.

En caso de que se necesitara vaciar algún estado volátil o hacer alguna recarga, apagué y reinicié el sistema después de asegurarme de que esos servicios estuvieran marcados como deshabilitados. Aún así, volvieron tan pronto como se inició la aplicación Fotos.

launchctl blame gui/$UID/cloudphotosd simplemente indicó que el servicio se inició por xpc (mach), lo cual realmente no me dice mucho (la comunicación entre procesos aquí es probablemente solo la aplicación de fotos iniciando el servicio).

Me pregunto cómo deshabilitar realmente estos determinados procesos en segundo plano, para que no puedan ser iniciados por la aplicación Fotos, sin eliminarlos por completo del sistema ni hacer otros cambios "destructivos". O en otras palabras, aunque probablemente podría simplemente encontrar sus ejecutables reales y moverlos a algún lugar para archivarlos, no estando tan familiarizado con el funcionamiento de launchd, me pregunto si hay una forma de trabajar dentro de su sistema para realmente prohibir que ciertos servicios se inicien. Pensé que era launchctl disable... pero al parecer no, ya que no parece tener ningún efecto en este caso.

EDITAR: Debería aclarar, esto es en macOS 10.14/Mojave.

1 votos

Quizás cambiar los permisos con chmod -x en los binarios? Lo hice cuando mantenía dos versiones separadas de iTunes, para evitar lanzar accidentalmente la nueva.

0 votos

Todavía está funcionando "fuera" de launchd / el sistema de servicios, pero eso es menos destructivo todavía que simplemente moverlos a otro lugar. Si resulta que no hay forma dentro del sistema, probablemente eso es lo que haré, ¡gracias!

0 votos

¡De nada! Lo publicaré como una respuesta.

3voto

lamas Puntos 2252

Intenta ejecutar chmod -x en los binarios. Esto evitará que se inicien en absoluto hasta que los hagas ejecutables de nuevo.

No sé cómo afectará SIP a esto, ya que estás modificando programas integrados. Puede que tengas que desactivarlo.

1voto

Dak Puntos 93

Esto resulta ser desagradable. Lamento decir que Apple realmente arruinó esto (y como es obsoleto, no habrá una solución permanente). La buena noticia es que como es obsoleto, es probable que la mayoría de las soluciones enumeradas aquí y en otros lugares sigan funcionando.

  1. Primero, si tu sistema es extremadamente lento porque el photoanalysisd está ejecutando trabajos una y otra vez, sin hacer nada, puedes simplemente:

    sudo killall photoanalysisd

Esto te dará un poco de espacio para poder acceder realmente a tu disco. Ahí, eso es mejor, ¿no es así? Si eso no es suficiente, siempre puedes hacer un while true do sudo killall photoanalysisd ; sleep 60 ; done

  1. Las soluciones permanentes implica desactivar la Protección de Integridad del Sistema (SIP), porque el demonio de análisis de fotos y su configuración están protegidos por SIP. Es posible que una actualización del sistema restablezca los valores predeterminados de Apple, pero como tu sistema es obsoleto ahora, es poco probable.

Entonces, reinicia en la consola de Recuperación (reinicia, mantén presionada la tecla R mientras se reinicia y luego abre Terminal.

    csrutil disable
    shutdown -r now

para desactivar SIP, luego reinicia

Ahora, todo lo que tienes que hacer es mover el archivo de configuración que indica a launchd que inicie photoanalysisd.

    cd /System/Library/LaunchAgents/
    mkdir DISABLED
    sudo mv com.apple.photoanalysisd.plist DISABLED
    sync

y luego reinicia en modo de recuperación, nuevamente manteniendo presionada la tecla R durante el inicio.

    shutdown -r now

mantén presionada la tecla R abre Terminal, y csrutil enable shutdown -r now

Y ahora, photoanalysisd no se iniciará.

Lamentablemente,

  1. Observa que el plist para photoanalysisd tiene cosas como retraso, si se debe repetir, y demás. En mis experimentos, ninguno de ellos se utiliza, porque aunque launchd tiene estas facilidades, photoanalysisd parece tener su propia idea de reiniciarse para esperar trabajo, y no utiliza las facilidades de launchd. SUSPIRO. Sospecho que esto es menos importante en APFS, pero en HFS+, no tiene los metadatos para hacer esto de manera eficiente, por lo que el photoanalysisd que "no es importante, probado y funcionando en 'mi máquina'" en realidad es un devorador de ancho de banda del disco y la CPU, sin hacer absolutamente nada después de que se complete la clasificación inicial.

Me ENCANTARÍA saber una manera de iniciar photoanalysisd solo según demanda, pero la combinación de SIP y la ausencia de un protocolo de trabajo documentado hace que sea difícil sin documentación. Incluso busqué en el binario las cadenas que podría estar buscando en comandos, propiedades de launchd, etc., pero no hay documentación. Si alguna vez actualizo mi encantadora tanque de iMac de 2009 a un SSD, veré. Dicho eso, el hardware seguiría siendo SATA y no NVMe, por lo que la gran cantidad de canales de comando que podrían hacer que la interfaz del disco fuera tan rápida que no le importaría no estarían presentes. Si alguien más tiene resultados, sería genial.

1voto

user1270949 Puntos 39

Encontré una solución mucho más fácil que funciona en Monterey

  1. Desactiva el proceso usando launchctl

    launchctl disable user/$UID/com.apple.photoanalysisd

  2. Ahora mata el proceso actual de Photoanalysisd

    launchctl kill SIGTERM gui/$UID/com.apple.photoanalysisd

y eso debería ser todo! Photoanalysisd debería estar desactivado y ya no se ejecutará en segundo plano.

Para volver a habilitarlo, ejecuta

launchctl enable user/$UID/com.apple.photoanalysisd
launchctl kickstart gui/$UID/com.apple.photoanalysisd

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X