←→ 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:

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

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.