~/Library/LaunchAgents/homebrew.mxcl.mysql.plistのKeepAliveがtrueになっていると、mysqlのプロセスが止まった時点でlaunchctlが頑張って起動しなおそうとする。
このため、mysqlを手動で再起動しようとmysql.server restartを叩くと、この機能と衝突してしまってうまくいかない。stop/startもだいたいダメ。とはいえ再起動のたびにplistをunload/loadするのも面倒くさい(今までこれをやってた)。
じゃあどうするのかというと、KeepAliveをfalseにする。
$ diff -u ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist{.org,}
--- ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist.org 2013-10-11 11:52:08.000000000 +0900
+++ ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 2013-10-11 11:52:17.000000000 +0900
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>KeepAlive</key>
- <true/>
+ <false/>
<key>Label</key>
<string>homebrew.mxcl.mysql</string>
<key>ProgramArguments</key>
そしてplistをunload/loadすれば、mysql.server restartで再起動するようになる。
$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist $ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist