Launchdを使ってMAMPを自動起動する。

MacにインストールしたMAMPを使ってこのBlogを公開しております(2019.4現在)。ログインしてMAMPアプリを起動してWebサーバを立ち上げるのが面倒くさいので、Macを起動したらログインせずとも自動でWebサーバが立ち上がるようにします。launchdを使います。

MAMPの起動プロセス

MAMPはアプリ使わなくてもコマンドで起動、停止ができるとのこと。

MAMPのApache,MySQLをコマンドラインからGUIなしで起動する

@laisoさん at Quiita

起動と停止のコマンドはつぎのとおりです。実に分かりやすい。

 

start.shの中身は次のとおり。

 

それぞれの中身は、

です。
MySQLとApacheをこのようなコマンドで起動していることが分かりました。

 

自動起動設定ファイル

コマンドが分かったのでlaunchdでデーモン化します。

次のコマンドでMySQLを起動させるplistファイルを作成します。

sudo nano /Library/LaunchDaemons/startMysql.plist

内容は次のとおり。
UserName(マーカーの所)は、スクリプト実行するユーザー名を指定します。私の環境では、MAMPのインストール&運用を行っているユーザpiなので、piを設定します。ここをちゃんと設定しないとパーミッションの関係でうまく動作しなくなるので注意。

 

startMysql.shの中身に記載されていたMySQLを起動するコマンドを、plistファイルへ落とし込んだ部分を抜粋しました。コマンド、オプションをこのような感じに記述していきましょう。

 

同様にApacheを起動するplistファイルstartApache.plistを作成します。
中身は次のとおり。
マーカーの部分が大事です。Apacheは、httpdという名称のプロセスを常駐させます。そして、負荷に応じて同名の子プロセス作ったり消したりします。このような子プロセスを作るプログラムの場合にはSessionCreateをtrueに設定します。

 

ワンポイント

RunAtLoadは、plistファイルがロードされたとき、即時実行させるためのキーワードです。

指定した時刻に実行させたいときはこんな感じ。
なお、Weekdayに指定した数字は、0:日曜, 1:月曜, …..6:土曜です。

 

一定間隔で実行させたかったらこんな感じ。
数値は秒です。

 

KeepAliveというキーワードがあります。これは、プロセスが何らかの理由で終了したときに、自動で再起動してくれるものです。

 

 

設定ファイルの登録

launchdに2つのplistファイルを登録します。

 

再起動&Webサーバ確認

Macを再起動します。それだけでWebサーバが立ち上がるはず。
うまくいったならば、mysqlとApacheのプロセスが立ち上がっているはず。

 

ちゃんと当サイトが立ち上がりました。

 

以上です。

 

 

Leave a Comment

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください