Cuando ejecuto sudo kill -9 [PID]
con la ID de proceso adecuada, el proceso se detiene pero luego se reinicia y tiene un nuevo PID. Estoy tratando de matar el mysqld
proceso.
¿Cómo puedo imitar el Monitor de actividad para matar un proceso? En el Monitor de actividad, cuando presiona "Salir del proceso", el proceso deja de ejecutarse permanentemente, se termina por completo. Me imagino que kill
hará lo mismo, ¿verdad?
Tenía tanto el Monitor de actividad como el terminal uno al lado del otro para ver si el comando funciona, pero cada vez que lo hago sudo kill -9 [PID]
, el proceso en el Monitor de actividad no desaparece, solo se actualiza con un nuevo PID.
Entonces ... ¿cómo elimino el mysqld
proceso a través del terminal?
Respuestas:
Probablemente , el proceso que está ejecutando está siendo administrado por launchd , la forma correcta de detenerlo y evitar que se reinicie es usarlo
launchctl unload <path to plist>
. La lista que controla ese proceso está en/Library/LaunchDaemons
o/System/Library/LaunchDaemons
. Si se trata de un proceso del sistema y no uno propio, probablemente tendrá que utilizarlosudo
para comenzarlaunchctl
a trabajar como lo desee.Una mejor manera de tratar de detenerlo podría ser;
fuente
mysqld
proceso. No estoy seguro de si eso es parte de LaunchDaemons ... pero el siguiente comando es la forma correcta de detener la ejecución del servidor,sudo /usr/local/mysql/support-files/mysql.server stop
pero tengo problemas con eso, así que estoy tratando de matar el proceso directamente.kill -9
el launchd esté probablemente involucrado, aunque sea indirectamente. puede decirlo usandolaunchctl list
sudo launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Un par de comentarios mencionan que "launchd probablemente esté involucrado", así que pensé en publicar esto como una respuesta adicional. Como dice @ jarrod-roberson, puede verificar si launchd está involucrado ejecutando primero
launchctl list | grep mysqld
.Una cosa importante que aprende aquí es si MySQL se instaló con Homebrew o no: Brew almacena sus
launchctl
archivos en una ubicación diferente de donde OSX pone los servicios "regulares".En mi cuadro OSX, los
plist
archivos están en~/Library/LaunchAgents/
Así que ejecuté:para detener el servidor MySQL. Había buscado previamente
/Library/LaunchDaemons/
y/Library/LaunchAgents
no encontré un archivo conmysqld
su nombre.También puede instalar un sistema basado en brew llamado
services
, para administrar todas las aplicaciones de servicios instaladas en Brew, como se describe en esta publicación: http://robots.thoughtbot.com/starting-and-stopping-background-services-with-homebrew I Sin embargo, no he probado esto, así que YMMV.fuente
/usr/local/opt/mysql/homebrew.mxcl.mysql.plist
Traté de matar el proceso enviándole la
TERM
señal, y funcionó. El comando fue:fuente
Para mí, esto funcionó una vez que descubrí qué etiqueta estaba buscando.
fuente
Descargue el servicio y detenga el demonio:
Cargue el servicio e inicie el demonio:
fuente
com.oracle.oss.mysql.mysqld.plist
se instaló Mi MySQL local desde la descarga desde MySQL, no a través de homebrew.¿Qué proceso estás tratando de matar? Algunos procesos en Mac OS X (por ejemplo, el Dock, algunos procesos del sistema) reaparecen automáticamente si son eliminados.
fuente
mysqld
procesolaunchd
, entonces, que lo reiniciará si el proceso se detiene.Resolví la edición del archivo /Library/LaunchDaemons/com.mysql.mysql.plist, cambiando el atributo verdadero a falso
fuente
Hay un proceso ejecutándose en su máquina que está bloqueando mysql. correr
ps auxwww | grep mysql
entonces hazlo
kill -15 {PID}
Mi proceso que lo estaba bloqueando fue _mysql
fuente