De todas las aplicaciones que instalamos en nuestros Macs, algunas de ellas necesitan iniciarse al arranque del sistema, bien porque monitorizan parte de él o bien porque ofrecen servicios desde el primer momento. El objetivo de esta entrada es conocer las cuatro localizaciones donde se definen estos ítems de arranque, y para que sirve cada uno de ellos.
¿Nunca os habéis preguntado porqué algunas aplicaciones vienen con su propio instalador? ¿Esto en Mac no es necesario, al ser cada programa una carpeta ejecutable autocontenida, verdad? Pues tienen un motivo, y en muchos casos es el de instalar scripts de inicio para lanzar servicios o pequeñas utilidades que la aplicación utilizará más adelante.
Quizás también os haya pasado que instaláis algo, y aunque lo quitéis del típico “Items de Arranque” de la sesión de usuario… ¡se sigue ejecutando! ¿Que está ocurriendo en estos casos? Vamos a localizar los cuatro sitios que debéis mirar para que no se os vuelva a escapar nada.
1. Apps de arranque en la sesión del usuario
Empecemos con lo fácil, que casi todos conocemos. Es la parte de la cuenta de usuario en las que especificamos que aplicaciones queremos que arranquen cuando iniciamos la sesión. El acceso es bastante intuitivo dentro de Preferencias del Sistema / Cuentas / Arranque.
Aquí directamente seleccionamos las aplicaciones que queremos que se carguen cuando entramos en nuestra cuenta añadiendo o quitándolas simplemente pulsando en los botones + y – de la pantalla. Incluso podemos elegir si queremos que se oculte su apertura marcando la casilla correspondiente.
Todo bastante sencillo y de forma muy visual, gracias a la interfaz que nos proporciona el propio Mac OS X. Este es el primer sitio donde deberíamos mirar para quitar o añadir una aplicación, siempre recordando que estamos haciéndolo sobre un usuario en concreto (el que tenemos seleccionado).
2. StartupItems
Los StartupItems son “packs” compuestos habitualmente por scripts y archivos de configuración de aplicaciones, que se lanzan justo al final del proceso de arranque, pero antes de cualquier inicio de sesión. Son utilizados por los desarrolladores para dar servicios a todos los usuarios del sistema, como por ejemplo, acceso a algún hardware instalado.
Los que nos interesan están en la ruta Macintosh HD/Librería/StartupItems, que es el directorio disponible para software de terceros. Hay otra carpeta denominada de la misma forma en Macintosh HD/Sistema/Librería/StartupItems, pero es utilizada exclusivamente por el sistema si la necesita. Puede no contener nada.
No vamos a entrar en detalle sobre el contenido de una carpeta StartupItem, simplemente tengamos presente que todo lo que haya en esta carpeta se inicia antes de cualquier sesión. En la captura de arriba, veis que en mi Mac se inician servicios de tres programas distintos. Si desintaláis un programa, revisad que en esta carpeta no exista nada sobre él porque posiblemente se inicien servicios que no servirán para nada más que consumir vuestra preciada memoria. Si no os atrevéis a borrar las carpetas, con moverlas de sitio y reiniciar, podréis ver que todo funciona sin problemas y ya sí, podréis deshaceros de estas carpetas con seguridad.
3. LaunchAgents
Los Agents y los Daemons del siguiente punto son dos tipos de servicios controlados por launchd, un gestor unificado de este tipo de servicios que utiliza Mac OS X desde Tiger. La principal diferencia entre ambos es que los Daemons se pueden invocar sin necesidad de haber iniciado sesión ningún usuario, y los Agents siempre actúan en nombre de uno.
¿Que son exactamente? Los encontraremos en forma de ficheros .plist que lanzan scripts de diferente tipo. Los del sistema los encontraremos en Macintosh HD/Sistema/Librería/LaunchAgents y el resto en Macintosh HD/Librería/LaunchAgents. En ambos casos se lanzan siempre que se inicia algún usuario, sea cual sea, pero sólo cuando se entra en una sesión. Dentro de cada usuario, también existe una carpeta donde se personaliza todavía más el lanzamiento de estos servicios. Localizada siempre bajo la raíz del usuario, en mi caso pedroaznar/Librería/LaunchAgents.
Aquí he encontrado alguna vez rastros de programas rebeldes que se resisten a irse de mi disco duro. Un claro ejemplo es Plex: Si lo habéis probado, sabréis que instala al inicio un Plex Media Server que aunque borremos la aplicación original, sigue arrancando. Pues en esta ruta dentro del raíz de vuestro usuario encontraréis el .plist. Con borrarlo, será suficiente.
4. LaunchDaemons
Como ya hemos comentado antes, son servicios que se inician antes de cualquier sesión de usuario, por tanto no existen bajo la raíz de ninguno de ellos. Encontraremos los del sistema en Macintosh HD/Sistema/Librería/LaunchDaemons y el resto en Macintosh HD/Librería/LaunchDaemons.
Aquí también podéis revisar (siempre sobra la ruta que no es la del sistema) qué aplicaciones de terceros han añadido scripts de inicio en vuestro Mac. Por ejemplo, en mi caso veo que LogmeIn inicia el servicio del cliente para poner mi Mac disponible dentro mi cuenta con ellos, o que Parallels lanza algunos servicios para comunicar mejor las máquinas virtuales con la local.
Revisad cuales de ellos no utilizáis y borrad los que tengáis claro que no os sirven. Siempre, os lo vuelvo a recordar, bajo la ruta que no es la del Sistema, ya que en esa ruta es el propio sistema operativo quien modera sus propios servicios.
Launchd Editor, un programa útil
Ya para terminar, y como ayuda a los que no os hayáis enfrentado mucho con ficheros de configuración .plist, os recomiendo una pequeña utilidad que os será de gran ayuda: Launchd Editor, un editor visual de estos ficheros de configuración que nos permitirá visualizar, de forma clara, a qué está apuntando cada .plist.
En el ejemplo de la captura de arriba, al abrir el .plist de Plex dentro de los LaunchAgents, puedo ver en “Program” donde está el ejecutable al que se llama en el arranque. Con lo que podré borrarlo también si no lo voy a utilizar. Recordad que si borráis un .plist elimináis la orden de arranque de un servicio, pero no el ejecutable al que hace referencia. Pues bien, revisando aquí donde está el objetivo, podréis hacerlo también.
Una cosa sobre Launchd Editor: Debéis abrirlo en modo compatibilidad con Rosetta haciendo click derecho sobre él / Obtener información / y marcáis Abrir con Rosetta. Mi Snow Leopard lo detecta como Universal, pero no funciona sin este pequeño truco.
Espero que os haya quedado claro dónde está cada cosa y para que sirve, con el objetivo de ganar un poco el control sobre nuestro sistema y evitar esas “pérdidas” de aplicaciones en background que muchas veces nos vuelven locos. Mi recomendación es que uséis un buen programa desinstalador, como AppCleaner. Y también recordad: Si una aplicación trae instalador, probablemente también traiga desinstalador que limpie completamente estos .plists rebeldes. Si no lo trae, ya sabéis como actuar.
Por otro lado, he mencionado muy tangencialmente el tema de los servicios en Mac OS X. En próximas entradas si os parece los tratamos más en profundidad, para aprender a hacer nosotros mismos alguno de ellos que nos puedan ayudar en un momento dado.
Imagen | First Boot, por danieljordahl (Flickr)
Ver 45 comentarios