4 votos

¿Por qué no puede este proceso de terminar?

o

Recientemente me encontré con un problema en mi red programa no se unen a un puerto porque ya estaba en uso. Abrí el monitor de actividad y se dio cuenta de que (llamado "servidor") ya se estaba ejecutando previamente, a pesar de que yo había cerrado la ventana y fue supuestamente terminado. Dejar de fumar o de la Fuerza de Cierre en el proceso de hacer nada. Incluso he reiniciado el equipo, pero todavía estaba allí! Esto no ha sucedido con mi programa antes. Incluso me escribió en el terminal kill 4517 y no pasó nada. Ayuda?

4voto

Ryan Spears Puntos 1524

OS X utiliza un proceso de lanzamiento de un sistema llamado launchd que consolida las funciones proporcionadas por los scripts de inicio, crontab y más en los sistemas *nix (ver el artículo de la Wikipedia para un alto nivel de información general, y de Desarrolladores de Apple, google docs en el lanzamiento de los demonios y de los agentes para más detalles). Una de las habilidades de launchd es mantener un proceso que se inició con vida, si es así que se define por su archivo de configuración – en ese caso, el proceso se reiniciará cada vez que se termina. Su problema con un proceso aparentemente la persistencia a través de los reinicios y el manual de la terminación suena muy parecida a la de un caso de launchd inició el proceso con un keepAlive clave.

launchd archivos de configuración están en plist formato y se encuentra en

  • ~/Library/LaunchAgents – agentes para la cuenta de usuario actual sólo
  • /Library/LaunchAgents y /Library/LaunchDaemons – de los agentes y de los demonios para todas las cuentas de usuario
  • /System/Library/LaunchAgents y /System/Library/LaunchDaemons – sistema de nivel de los agentes y de los demonios

y son generalmente llamado a la inversa de dominio de la notación (tld.domain.process.plist). Dependiendo de si la cuenta de usuario de server es tuyo o no (no se puede decir, como se han borrado), usted debe buscar en uno de los dos primeros lugares por encima de un probable plist (si usted tiene Xcode instalado, usted puede QuickLook fácilmente). Si se encuentra, su server es de hecho controlado por launchd. El procedimiento correcto para detenerlo es para eliminarlo de launchd's lista de procesos a través de

launchctl unload <tld.domain.process>

que descargar y detener el proceso (nota omite el plist sufijo).

También hay una interfaz gráfica de usuario para el manejo de launchd archivos, Pedro de Borg Lingon (asegúrese de obtener "Lingon", no "Lingon 3", que es un atontada versión segura de vainilla), que podría ser más conveniente que el manual del rooting a través de las ubicaciones de archivo.

2voto

UwF Puntos 329

Dar a este un intento.

    sudo kill -9 4517

Donde 4517 es el PID del proceso.

Si el proceso viene de vuelta con un nuevo PID, algo relanzado. Ver kopischke la respuesta de cómo lidiar con eso.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X