3 votos

¿Cómo averiguar cómo un proceso se inicia automáticamente después del inicio de sesión?

(He añadido una actualización al final).

Mis preguntas relacionadas:

¿Cómo eliminar los iterms de acceso ocultos de backgrounditems.btm?

Un trabajo de launchd sin archivo plist, ¿cómo funciona y cómo encontrar qué trabajo lo desencadena?

Aunque las preguntas anteriores están relacionadas, no son lo mismo que esta pregunta.

Estoy utilizando MacOS Big Sur.

He descubierto que hay muchas aplicaciones descargadas en línea que se autoinician de alguna manera. Estoy teniendo realmente un tiempo difícil de rastrear cómo se inició el auto.

Toma un ejemplo, com.xunlei.Thunder.ThunderHelper siempre se inicia automáticamente tras el arranque del sistema.

Hasta ahora, he descubierto que hay dos cosas que están relacionadas con este proceso de auto-inicio.

Uno es de la tarea de launchd (sin archivo .plist):

$ launchctl list | grep -i thunder
405 0   com.xunlei.Thunder.ThunderHelper

$ launchctl print gui/$(id -u)/com.xunlei.Thunder.ThunderHelper
...
    path = (submitted by otherbsd.330)
    program identifier = com.xunlei.Thunder.ThunderHelper
    parent bundle identifier = com.xunlei.Thunder
...

Uno de ellos es un iterm de inicio de sesión oculto de $HOME/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm archivo. NOTA : este iterm de inicio de sesión NO se muestra en las Preferencias del Sistema. Lo encontré utilizando un script de Python mencionado en mi otra pregunta en detalle python3 ./bgiparser.py -f backgrounditems.btm -c .

Yo sí NO encontrar cualquier cosa relacionada con thunder en los siguientes directorios:

/Library/StartupItems
/System/Library/StartupItems
~/Library/LaunchAgents/
/Library/LaunchAgents
/Library/LaunchDaemons
/System/Library/LaunchAgents
/System/Library/LaunchDaemons

No empiezo thunder aplicación por mí mismo.

AHORA, para evitar que se inicie automáticamente, hice lo siguiente

launchctl stop com.xunlei.Thunder.ThunderHelper
launchctl remove com.xunlei.Thunder.ThunderHelper
kill -9 405
rm "$HOME/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm"

Nota de nuevo, no inicio la aplicación de trueno por mí mismo. Ahora, apago el sistema MacOS y desconecto el cable de alimentación, conecto el cable de alimentación, inicio el sistema MacOS.

Por arte de magia, la aplicación de ayuda a los truenos vuelve a iniciarla automáticamente. Creó un trabajo launchd en ejecución de nuevo. Creó un iterm de inicio de sesión oculto de nuevo en un nuevo backgrounditems.btm archivo.

Estoy muy confundido y ¿cómo se hace esto?

Si abro la aplicación manualmente y luego crea laucnhd job y login iterm, me parece bien. PERO no arranco la app en absoluto. He eliminado el archivo login iterm. He detenido su proceso relacionado.

¿Puede alguien ayudarme a encontrar cómo se autoinicia este programa?

Muchas gracias.

PS:

Sé que hay el siguiente archivo y directorio:

/Applications/Thunder.app/Contents/Library/LaunchServices/com.xunlei.Thunder.HelperTool

/Applications/Thunder.app/Contents/Library/LoginItems/ThunderHelper.app/

Sé que podría eliminarlos (aunque no lo he probado). Pero quiero averiguar cómo se inician automáticamente en lugar de eliminarlos. Saludos.

Actualización

Encontré una verdad aterradora sobre este tema.

Después de matar/eliminar cualquier proceso de trueno en ejecución (incluyendo rm backgrounditems.btm ).

He movido Thunder.app a otro directorio con el siguiente comando:

$ mkdir -p $HOME/tmp/thunder_tmp/
$ mv /Applications/Thunder.app $HOME/tmp/thunder_tmp/

Y luego reiniciar el sistema MacOS. Lo más extraño ocurrió. La aplicación Thunder helper se inició automáticamente desde la nueva ruta y los iterms de inicio de sesión con la nueva ruta añadida a la nueva backgrounditems.btm archivo:

# Part of decoded backgrounditems.btm file:
{
    "name": "ThunderHelper.app",
    "path": "/Users/myuser/tmp/thunder_tmp/Thunder.app/Contents/Library/LoginItems/ThunderHelper.app"
},

Parece que MacOS busca en todo mi disco duro para encontrar todas las aplicaciones de ayuda y las inicia automáticamente y las añade como un iterm oculto a los iterms de inicio de sesión automáticamente también. (podría no ser cierto)

Si esto es cierto, ¡dará mucho miedo!

¿Cómo puedo evitar que MacOS haga esta cosa espantosa? ¿Por qué busca en todo mi disco cada vez que se inicia y trata de encontrar una aplicación de ayuda para iniciar y añadir a los iterms de inicio de sesión también? Es realmente increíble.

4voto

Jose Chavez Puntos 645

En realidad, esto no da miedo: es un comportamiento previsto, bien definido y documentado.

Las aplicaciones en MacOS pueden venir con una aplicación de ayuda que se ejecuta en segundo plano. La aplicación de ayuda se almacena dentro del paquete de aplicaciones de la aplicación principal y se gestiona a través de la función Marco de gestión de servicios .

Cuando añada una aplicación a un ordenador MacOS, el sistema buscará en el paquete de aplicaciones para determinar cómo se relaciona esta aplicación con el sistema. En particular, cosas como:

  • qué tipos de archivos puede abrir este programa
  • qué icono debe mostrarse
  • ¿requiere este programa una aplicación de ayuda en segundo plano?

Como se pueden instalar aplicaciones en cualquier carpeta de un Mac, esta detección e inspección ocurre en todas partes. En particular, no tiene que instalar aplicaciones en la carpeta /Applications carpeta. No implica que el sistema "busque en todo el disco duro", ya que los paquetes de aplicaciones ya están especialmente marcados. Cuando se añade un paquete de aplicaciones al sistema de archivos (o se mueve), el sistema lo conoce y toma nota de la información mencionada.

Registrar las aplicaciones de ayuda incluyéndolas en el paquete de aplicaciones es, de hecho, el método recomendado para las aplicaciones que están en el sandbox (es decir, por ejemplo, las que provienen de la Mac App Store), ya que a estas aplicaciones no se les permite crear archivos fuera del sandbox.

Si la propia aplicación no incluye una opción para desactivar la aplicación de ayuda, es porque el desarrollador de la app ha decidido que su aplicación no puede funcionar con el ayudante. La forma correcta de desinstalar la aplicación de ayuda es desinstalar la aplicación principal.

Para desactivar manualmente el elemento de inicio de sesión, el método menos "agresivo" es cambiar el archivo Info.plist dentro del paquete de aplicaciones. Usando el Editor de la Lista de Propiedades encuentre la clave SMLoginItemSetEnabled y cambie el valor booleano asociado a false.

También puedes ser más agresivo y borrar manualmente el contenido del <app>.bundle/Contents/Library/LoginItems carpeta.

En cualquier caso, te arriesgas a que la propia app no funcione, y tendrás que desconfiar de las actualizaciones de la aplicación que reviertan este cambio.

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