Buscar proceso asociado con launchd

El puerto TCP 5901 está abierto en mi máquina y está causando problemas, y quiero saber qué proceso lo está abriendo. Cuando ejecuto lsof -i -Pveo que launchd es el proceso que abrió el puerto.

¿Hay alguna forma rápida de determinar qué archivo plist de launchd se está utilizando para abrir ese puerto? Preferiría no tener que pasar por cada lista mencionada por launchctl list.

Respuestas (2)

Primero, ¿lo está abriendo el sistema launchd (ID de proceso 1, ejecutándose como root) o un usuario launchd (ejecutándose como usuario)? Si es el lanzamiento del sistema, está buscando un LaunchDaemon; si es un usuario lanzado, está buscando un LaunchAgent.

Suponiendo que es el lanzamiento del sistema, puede buscar el LaunchDaemon relevante de esta manera:

grep 5901 {,/System}/Library/LaunchDaemons/*

(nota: si el puerto 5901 estuviera en /etc/services, también tendría que buscarlo por nombre y número. Pero no lo está, así que no tiene que preocuparse por eso).

También es posible que sea un LaunchDaemon que se cargó desde otro lugar; rastrear eso sería complicado, así que comience primero con la verificación fácil.

Impresionante grepallí. Buena generalización en /etc/services también.

El puerto 5901 se usa para VNC ( uso compartido de pantalla de escritorio remoto en OS X ) y, por diseño, launchd lee todos los archivos de configuración que están cargados en su Mac y luego escucha en los puertos en lugar de iniciar el programa que eventualmente recibirá comunicaciones en ese puerto. .

En este caso, dado que solo ve launchd y no un proceso screensharingd o ScreensharingAgent , es posible que pueda concluir que launchd está escuchando como un proxy para otro proceso que no se está ejecutando en este momento (o tal vez aún no se esté ejecutando).

Puede probar esto desactivando la configuración de uso compartido de pantalla en Preferencias del sistema o desinstalando cualquier otro software de servidor VNC remoto que tenga y luego volviendo a examinar lsof.

Entonces, no tenemos ningún software VNC que yo sepa instalado en la computadora. Además, el uso compartido de pantalla y todos los servicios de administración remota se han deshabilitado, pero el puerto aún está abierto. Sé que algún proceso está asociado con ese puerto porque cuando me conecto a través de netcat, mi máquina falla.
Hmm, no puedo pensar en otro atajo que no sea el que desea evitar: averiguar qué plist está haciendo que el lanzamiento y la escucha en 5901. No tengo ningún sistema escuchando en ese puerto, así que espero que sea algo inocente y no malware.