←→ Underneath: Background Apps · Todas las guías para Mac
Cómo desactivar agentes de lanzamiento en un Mac sin riesgo
Eliminar un .plist de LaunchAgents es el consejo que más se ve. También es la peor forma: la tarea sigue ejecutándose hasta que reinicias y no puedes deshacerlo. Esta es la forma segura y reversible.
Respuesta corta: busca la etiqueta (label) de la tarea y ejecuta
launchctl bootout gui/$(id -u)/com.example.label
launchctl disable gui/$(id -u)/com.example.label
El primer comando la detiene ahora. El segundo la mantiene desactivada tras los reinicios. launchctl enable lo deshace.
Antes de empezar: no toques nada de /System/Library ni ninguna etiqueta que empiece por com.apple.. Pertenecen a macOS. No toques las herramientas de VPN, copia de seguridad, seguridad ni los controladores, salvo que estés quitando la herramienta.
Paso 1: encuentra la tarea
Los agentes y daemons de lanzamiento están en tres carpetas que puedes modificar:
~/Library/LaunchAgents: tus propios agentes. No hace falta contraseña./Library/LaunchAgents: agentes para todos los usuarios. Para modificar el archivo hace falta una contraseña de administrador./Library/LaunchDaemons: daemons del sistema, se ejecutan como root. Hace faltasudo.
Lista lo que está cargado ahora, sin las tareas de Apple:
launchctl list | grep -v com.apple
Las columnas son el ID de proceso (- si no se está ejecutando), el último estado de salida y la etiqueta. Necesitas la etiqueta.
Paso 2: comprueba qué hace
plutil -p ~/Library/LaunchAgents/com.example.label.plist
ProgramArgumentsoProgram: lo que ejecuta. ¿La ruta apunta a una app que conoces? ¿Esa app sigue existiendo?RunAtLoad: se inicia en cada inicio de sesión.KeepAlive: se reinicia cuando se detiene.StartInterval/StartCalendarInterval: se ejecuta según una programación.
Si la ruta del programa apunta a una app que has eliminado, la tarea es un resto y se puede quitar sin riesgo. Si es un actualizador, desactivarlo significa que la app no se actualizará sola.
Paso 3: haz una copia de seguridad
mkdir -p ~/LaunchAgents-backup
cp ~/Library/LaunchAgents/com.example.label.plist ~/LaunchAgents-backup/
Paso 4: detenla ahora
Para un agente (en cualquiera de las dos carpetas LaunchAgents):
launchctl bootout gui/$(id -u)/com.example.label
Para un daemon en /Library/LaunchDaemons:
sudo launchctl bootout system/com.example.label
Esto descarga la tarea y termina su proceso. No sobrevive a un reinicio si la tarea tiene RunAtLoad.
Paso 5: mantenla desactivada
Elige una opción.
Opción A: launchctl disable (recomendada)
launchctl disable gui/$(id -u)/com.example.label
Para un daemon: sudo launchctl disable system/com.example.label.
macOS guarda la etiqueta en su propia lista de tareas desactivadas, así que la tarea sigue desactivada aunque la app vuelva a escribir su plist. Consulta la lista con:
launchctl print-disabled gui/$(id -u)
Opción B: mueve el plist a otro sitio
mkdir -p ~/Library/LaunchAgents/Disabled
mv ~/Library/LaunchAgents/com.example.label.plist ~/Library/LaunchAgents/Disabled/
launchd solo lee los archivos que están directamente en la carpeta LaunchAgents, no en sus subcarpetas, así que la tarea no se cargará en el próximo inicio de sesión. El archivo sigue ahí por si lo necesitas. Si la app vuelve a crear el plist, la tarea vuelve; la opción A lo evita.
Opción C: Ajustes del Sistema
Muchas tareas aparecen también en Ajustes del Sistema › General › Ítems de inicio y extensiones › Permitir en segundo plano. Desactivar el interruptor ahí también funciona, pero un solo interruptor puede abarcar varias tareas del mismo desarrollador. Consulta qué significa «Permitir en segundo plano».
Paso 6: comprueba que ha funcionado
launchctl list | grep com.example.label
Si no sale nada, no está cargada. Reinicia y vuelve a ejecutarlo para asegurarte.
Deshacer
Si usaste la opción A:
launchctl enable gui/$(id -u)/com.example.label
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.example.label.plist
Si usaste la opción B, vuelve a mover el archivo a su sitio y ejecuta la misma línea bootstrap. Para daemons, usa sudo y system en lugar de gui/$(id -u).
Comandos antiguos que verás en internet
launchctl unload -w file.plist y launchctl load -w file.plist siguen funcionando, pero Apple los considera heredados (legacy). bootout, bootstrap, disable y enable son los actuales y dan errores más claros.
FAQ
¿Es seguro eliminar archivos de LaunchAgents?
Es más seguro desactivar que eliminar. Eliminar un plist no detiene una tarea que ya está cargada, y pierdes el archivo si lo vuelves a necesitar. Usa launchctl bootout y launchctl disable, o mueve el archivo a una carpeta de copia de seguridad.
¿Debo usar launchctl unload -w?
Sigue funcionando, pero Apple considera load y unload comandos heredados (legacy). En las versiones actuales de macOS, usa launchctl bootout para detener una tarea y launchctl disable para mantenerla desactivada.
¿Puedo desactivar los agentes de lanzamiento de Apple en /System/Library?
No lo hagas. Forman parte de macOS, la protección de integridad del sistema (SIP) protege esos archivos y desactivarlos puede estropear funciones como iCloud, Spotlight o las actualizaciones.
¿Cómo deshago launchctl disable?
Ejecuta launchctl enable gui/$(id -u)/<label> y luego launchctl bootstrap gui/$(id -u) con la ruta del plist, o cierra sesión y vuelve a iniciarla.
La app ha vuelto a poner su agente de lanzamiento. ¿Y ahora qué?
Usa launchctl disable. Desactiva la etiqueta, así que la tarea sigue desactivada aunque la app vuelva a escribir el plist. Desactiva también el ajuste «Iniciar con la sesión» de la propia app.