2016/09/28更新

[Mac] HomeBrewでインストールしたMySQLをマシン起動時に自動起動する

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日は小ネタになりますが、HomeBrewでインストールしたMySQLなどのアプリをMac起動時に自動起動する方法を書きたいとおもいます。

画像

Macでマシン起動時にプログラムを自動起動する方法

Mac起動時にプログラムを起動する方法はいくつかあるようですが、以下2つのディレクトリに設定ファイルを置くと実現できます。

/Library/LaunchAgents 主にここを利用して自動起動する
/Library/LaunchDaemons GUIを使わないアプリでデーモン起動するプログラムを起動する

今回は/Library/LaunchAgentsを利用します。



HomeBrewでインストールしたMySQLの起動設定

MySQLを以下のように、HomeBrew経由でインストールした場合に、
$ brew install mysql
インストール先のディレクトリには、以下のようなファイルが一緒にインストールされます。
/usr/local/opt/mysql/homebrew.mxcl.mysql.plist
中身はこんな感じです。
# cat /usr/local/opt/mysql/homebrew.mxcl.mysql.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>homebrew.mxcl.mysql</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/opt/mysql/bin/mysqld_safe</string>
    <string>--bind-address=127.0.0.1</string>
    <string>--datadir=/usr/local/var/mysql</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/var/mysql</string>
</dict>
</plist>
これはMac用のplistファイルで、このファイルを上記の起動用ディレクトリに配置することで、端末起動時にMySQLを自動起動することができます。具体的には以下のようにシンボリックリンクを貼ります(cpでコピーしてもOK)。
$ [sudo] ln -s /usr/local/opt/mysql/homebrew.mxcl.mysql.plist /Library/LaunchAgents/
これで設定は完了です。

あとはPCを再起動してみて、自動起動するかをチェックします。
# 起動後にmysqlの起動をチェック
$ ps aux | grep mysql | grep -v grep
これで無事にmysqlのプロセスが起動していればOKです。



参考資料

今回の内容を学ぶために以下を参考にしました。ありがとうございます。

- HomebrewでインストールしたMySQL,MongoDBを自動起動させる - Qiita

- LaunchDaemons (launchctl, launchd.plist) の使い方 - maruko2 Note.



最後に

今回は小ネタブログでしたが、こんな感じのちょっとした便利なことが開発効率をあげると思っていますので、これからも色々と学んだノウハウをブログに書いていけたらと思います。

最後になりますが本ブログでは、Mac・Python・フロントエンド・開発関連・Swift・Linux・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。