Когда я запускаю sudo kill -9 [PID]
с правильным идентификатором процесса, процесс останавливается, но затем перезапускается и получает новый PID. Я пытаюсь убить mysqld
процесс.
Как я могу имитировать Монитор активности при уничтожении процесса? В Мониторе активности, когда вы нажимаете «Выйти из процесса», процесс постоянно останавливается, он полностью завершается. Я полагаю, что kill
будет делать то же самое, верно?
У меня были и монитор активности, и терминал рядом друг с другом, чтобы посмотреть, работает ли команда, но каждый раз, когда я это делаю sudo kill -9 [PID]
, процесс в мониторе активности не исчезает, он просто обновляется с новым PID.
Итак ... как мне убить mysqld
процесс через терминал?
Ответы:
Процесс, который вы убиваете, вероятно, управляется launchd , и правильным способом остановить его и не перезапустить его является использование
launchctl unload <path to plist>
. PLIST , который контролирует этот процесс находится в любом/Library/LaunchDaemons
или/System/Library/LaunchDaemons
. Если это системный процесс, а не ваш собственный, то вам, вероятно, придется использоватьsudo
егоlaunchctl
для работы по своему усмотрению.Лучший способ попытаться остановить это может быть;
источник
mysqld
процесс. Я не уверен, является ли это частью LaunchDaemons ... но следующая команда - правильный способ остановить запуск сервера,sudo /usr/local/mysql/support-files/mysql.server stop
но у меня возникают проблемы с этим, поэтому я пытаюсь напрямую убить процесс.kill -9
как launchd, вероятно, вовлечено, даже если косвенно. Вы можете сказать, используяlaunchctl list
sudo launchctl unload /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
В паре комментариев упоминается, что «вероятно, задействован launchd» - поэтому я подумал, что это будет дополнительным ответом. Как говорит @ jarrod-roberson, вы можете проверить, участвует ли launchd при первом запуске
launchctl list | grep mysqld
.Здесь важно узнать, был ли MySQL установлен с Homebrew или нет - Brew хранит свои
launchctl
файлы в другом месте, чем то, куда OSX помещает «обычные» службы.На моей коробке OSX
plist
файлы находятся в~/Library/LaunchAgents/
Итак, я запустил:остановить сервер MySQL. Я ранее заглянул
/Library/LaunchDaemons/
и/Library/LaunchAgents
не нашел файл сmysqld
его именем.Вы также можете установить основанную на brew систему
services
для управления всеми приложениями служб Brew, как описано в этом посте - http://robots.thoughtbot.com/starting-and-stopping-background-services-with-homebrew I Я сам не пробовал, так что, YMMV.источник
/usr/local/opt/mysql/homebrew.mxcl.mysql.plist
Я попытался убить процесс, отправив ему
TERM
сигнал, и это сработало. Команда была:источник
Для меня это сработало, когда я понял, какой лейбл я искал.
источник
Выгрузите сервис и остановите демон:
Загрузите сервис и запустите демон:
источник
com.oracle.oss.mysql.mysqld.plist
мой локальный MySQL был установлен при загрузке с MySQL, а не через homebrew.Какой процесс вы пытаетесь убить? Некоторые процессы в Mac OS X (например, Dock, некоторые системные процессы) автоматически возрождаются, если они убиты.
источник
mysqld
процессlaunchd
тогда, который перезапустит его, если процесс умрет.Я решил отредактировать файл /Library/LaunchDaemons/com.mysql.mysql.plist, изменив атрибут true на false
источник
На вашем компьютере запущен процесс, который блокирует mysql. Бег
ps auxwww | grep mysql
тогда делай
kill -15 {PID}
Мой процесс, который блокировал это был _mysql
источник