Deshabilitar elementos de inicio que se ejecutan solos

9

He encontrado un par de aplicaciones que parecen ser capaces de iniciarse al inicio, a pesar de que no aparecen en los lugares habituales ...

- Login Items (in the Users preference pane)
- /Library/LaunchAgents
- /Library/LaunchDaemons
- /Library/StartupItems
- /System/Library/LaunchAgents
- /System/Library/LaunchDaemons
- /System/Library/StartupItems
- ~/Library/LaunchAgents
- ~/Library/LaunchDaemons
- ~/Library/StartupItems

Al menos algunas de estas aplicaciones (por ejemplo, el primer día y las pausas, ambas de la Mac App Store) parecen estar lanzando un elemento desde sus propias LoginItemscarpetas internas :

/Applications/Day One.app/Contents/Library/LoginItems/Day One Reminders.app
/Applications/Pauses.app/Contents/Library/LoginItems/PausesLauncher.app

Como buenos ciudadanos, ambas aplicaciones le permiten deshabilitar el comportamiento de inicio al iniciar sesión, pero es desconcertante que este comportamiento no parezca controlable desde una preferencia de todo el sistema, y ​​me gustaría una forma de identificar / controlar sistemáticamente Estos elementos de inicio de sesión. Entonces, la pregunta (de dos partes) es:

  • Qué controla realmente si / cómo se activan estos elementos de inicio específicos de la aplicación, y
  • ¿Cómo puedo obtener un inventario de todos estos elementos de inicio de sesión?

[editado para mayor claridad 2013-03-20 11:22 PT]

Dan
fuente
¿Por qué crees que no es un duplicado (ayuda a evitar obtener las mismas respuestas nuevamente)? Y supongo que está experimentando esto con aplicaciones específicas, ¿podría enumerarlas en su pregunta, por favor?
nohillside
Y creo que estás confundiendo la cosa del primer día. Lo que enumeró anteriormente es solo la aplicación Recordatorio (menulet) que comienza si se marca el inicio al iniciar sesión. No es una carpeta de LaunchAgents / Daemons de espacio aislado.
Nohillside
Gracias por la aclaración. Puedo estar equivocado sobre el diagnóstico, pero ahí es donde vi actividad al ver la acción "deshabilitar" fs_usage, así que asumí que eso era lo que estaba sucediendo.
Dan
Y no es un engaño porque la otra pregunta fue respondida con la lista estándar de elementos de inicio de sesión que enumeré al comienzo de la pregunta. Las aplicaciones con las que veo que esto sucede (incluido el primer día) no aparecen en mis Elementos de inicio de sesión o en esos directorios ...
Dan

Respuestas:

8

El primer día parece almacenar el elemento de inicio de sesión en /var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist:

$ /usr/libexec/PlistBuddy -c 'Print _com.apple.SMLoginItemBookmarks:com.dayoneapp.dayone-agent' /var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist
book 0(UserslaurTorrents
                        Day One.apContentsLibrary
LoginItemsDay One Reminders.app $4HXh?kld ????$A????H???A?1M?$5DF7A03E-A7FB-3E80-B61D-F10CD8BF7B5D?/?0c75ae904b0f99cb3a794e7360629c822a0f4a14;00000000;0000000000000020;com.apple.app-sandbox.read-write;00000001;01000002;0000000000641712;/users/lauri/torrents/day one.app/contents/library/loginitems/day one reminders.app??????D|@l 0 ? ? ? ?  0 <???????D

Cambiar esto a verdadero en ese mismo archivo lo deshabilitó:

<key>com.dayoneapp.dayone-agent</key>
<dict>
    <key>Disabled</key>
    <false/>
</dict>
Lri
fuente
1
Bien, parece que esa es la respuesta. Todavía estoy desconcertado por qué esto no aparece en ninguna parte obvia: no está en el panel de preferencias de Elementos de inicio de sesión (concedido, tendría que haber una nueva sección para todos los usuarios) ... no en ninguna de las carpetas de inicio ... Ni siquiera en Lingon. Por curiosidad, ¿cómo sabías dónde buscar?
Dan
Corrí fseventer cuando abrí el primer día por primera vez.
Lri
¡Gracias por compartir sus resultados de investigación! A veces también uso fseventer para aplicaciones de monitoreo de FS.
porg
2

(No se trata de los elementos de inicio de sesión visibles del usuario en las preferencias de los sistemas de usuarios y grupos)

El Contenido / Biblioteca / LoginItems / enterrado en el paquete de aplicaciones es lo que parece ser la implementación del enfoque de Apple para las aplicaciones de espacio aislado.

El consejo de @ user495470 sobre el almacenamiento de la referencia del elemento de inicio de sesión en /var/db/launchd.db/ parece que ahora no funciona en macOS 10.12

La dirección de Apple parece dirigirse hacia el enfoque de aplicación autónoma donde los LaunchDaemons, LaunchAgents y StartupItems pueden estar fuera de los límites en el futuro, ya que es posible que las aplicaciones de Mac tengan que ser sandbox en algún momento (conjetura personal, no un hecho). Por otro lado, la API CFPreferences y el envío de AppleEvents para su lanzamiento están en desuso ...

Árbitro:

Mientras que en el pasado era fácil buscar en las carpetas mencionadas información de inicio de inicio (según Dan), este nuevo modelo de espacio aislado, aunque teóricamente más seguro desde el punto de vista operativo, oculta la capacidad de inicio de una aplicación (¿o un troyano?) De todos los usuarios normales y la mayoría de los superusuarios que saben buscar en los directorios del sistema. Encontrar estos elementos de inicio de sesión ocultos ahora se ha convertido en un PITA (dolor en la aplicación), ya sea abriéndose paso a través de la carpeta Aplicaciones o abriendo manualmente paquetes de aplicaciones buscando en / Contenido / Biblioteca / una carpeta "LoginItems" y sus contenidos. Para la solución de nivel de usuario, encontré una herramienta que enumera los elementos de inicio de sesión integrados del paquete de aplicaciones llamados CleanMyMac (puede desactivarlos o activarlos. Tenga cuidado, solo obtenga esta aplicación de la compañía. Hay versiones crackeadas disponibles que realmente llevan un virus de una manera muy similar a cómo funciona ahora los Elementos de inicio de sesión (ironía) ...) CleanMyMac muestra el selector de elementos de inicio de sesión

Y observe cómo estos elementos, habilitados o deshabilitados, no forman parte de los "Elementos de inicio de sesión" visibles del usuario en las Preferencias del sistema "Usuarios y grupos":

Si eres como yo y estás trabajando en esto a nivel de código, aquí encontrarás una guía consolidada para la implementación (por Tim Schroeder 2013): el proyecto de lanzamiento en el sandbox de inicio de sesión

William Cerniuk
fuente