Quando executo sudo kill -9 [PID]
com o ID do processo adequado, o processo para, mas é reiniciado e tem um novo PID. Estou tentando matar o mysqld
processo.
Como posso imitar o Monitor de Atividade para matar um processo? No Monitor de Atividade, quando você pressiona "Sair do Processo", o processo para de ser executado permanentemente, é totalmente encerrado. Eu acho que kill
vai fazer a mesma coisa, certo?
Eu tinha o Activity Monitor e o terminal próximos um do outro para ver se o comando funciona, mas toda vez que faço sudo kill -9 [PID]
, o processo no Activity Monitor não desaparece, apenas é atualizado com um novo PID.
Então ... como eu mato o mysqld
processo através do terminal?
Respostas:
O processo que você está matando provavelmente está sendo gerenciado pelo launchd , a maneira correta de pará-lo e não reiniciá-lo é usá-lo
launchctl unload <path to plist>
. A lista que controla esse processo está em/Library/LaunchDaemons
ou/System/Library/LaunchDaemons
. Se for um processo do sistema e não um dos seus, provavelmente você precisará usarsudo
para começarlaunchctl
a trabalhar conforme desejado.Pode ser uma maneira melhor de tentar parar;
fonte
mysqld
processo. Não tenho certeza se isso faz parte do LaunchDaemons ... mas o comando a seguir é a maneira correta de interromper a execução do servidor,sudo /usr/local/mysql/support-files/mysql.server stop
mas estou tendo problemas com isso, então estou tentando matar o processo diretamente.kill -9
o lançamento provavelmente está envolvido, mesmo que indiretamente. você pode dizer usandolaunchctl list
sudo launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Alguns comentários mencionam que "o launchd provavelmente está envolvido" - então pensei em colocar isso como uma resposta adicional. Como @ jarrod-roberson diz, você pode verificar se o launchd está envolvido executando pela primeira vez
launchctl list | grep mysqld
.Uma coisa importante que você aprende aqui é se o MySQL foi instalado ou não com o Homebrew - o Brew armazena seus
launchctl
arquivos em um local diferente daquele em que o OSX coloca os serviços "regulares".Na minha caixa OSX, os
plist
arquivos estão em~/Library/LaunchAgents/
Então eu corri:para parar o servidor MySQL. Eu já havia consultado
/Library/LaunchDaemons/
e/Library/LaunchAgents
não encontrei um arquivo commysqld
esse nome.Você também pode instalar um sistema baseado em brew chamado
services
, para gerenciar todos os aplicativos de serviços instalados pelo Brew, conforme descrito nesta publicação - http://robots.thoughtbot.com/starting-and-stopping-background-services-with-homebrew I ainda não tentei isso sozinho, então YMMV.fonte
/usr/local/opt/mysql/homebrew.mxcl.mysql.plist
Tentei interromper o processo enviando o
TERM
sinal, e isso funcionou. O comando foi:fonte
Para mim, isso funcionou depois que eu descobri qual rótulo estava procurando.
fonte
Descarregue o serviço e pare o daemon:
Carregue o serviço e inicie o daemon:
fonte
com.oracle.oss.mysql.mysqld.plist
o MySQL local foi instalado a partir do download do MySQL, não via homebrew.Que processo você está tentando matar? Alguns processos no Mac OS X (por exemplo, Dock, alguns processos do sistema) reaparecem automaticamente se forem mortos.
fonte
mysqld
processolaunchd
, então, que o reiniciará se o processo morrer.Resolvi editar o arquivo /Library/LaunchDaemons/com.mysql.mysql.plist, alterando o atributo true para false
fonte
Existe um processo em execução na sua máquina que está bloqueando o mysql. Corre
ps auxwww | grep mysql
então faça
kill -15 {PID}
Meu processo que estava bloqueando era _mysql
fonte