There's an echo in my head

日々のメモ。

Homebrewで入れたmysqlを再起動するにはLaunchAgentのKeepAliveをfalseに設定しておく

~/Library/LaunchAgents/homebrew.mxcl.mysql.plistKeepAlivetrueになっていると、mysqlのプロセスが止まった時点でlaunchctlが頑張って起動しなおそうとする。

このため、mysqlを手動で再起動しようとmysql.server restartを叩くと、この機能と衝突してしまってうまくいかない。stop/startもだいたいダメ。とはいえ再起動のたびにplistをunload/loadするのも面倒くさい(今までこれをやってた)。

じゃあどうするのかというと、KeepAlivefalseにする。

$  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
このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。