YAMAGUCHI::weblog

噛み付き地蔵に憧れて、この神の世界にやってきました。マドンナみたいな男の子、コッペです。

MacPortsでインストールしたものをスタートアップで起動する

動機

冬休みでネットから離れる&外装が壊れたMacを修理に出してたらエントリが1週間空いてしまいました。あけましておめでとうございます。
毎回MacPortsで入れたApache2を手動で起動するのが面倒になったので、自動起動するようにできないかなと思って探したら、やはりありました。

方法

Macではlaunchdというdaemonで自動起動するプロセスの制御をしているようだけど、MacPortsでは同様のことをlaunchctlというプロセスで管理している。
launchdではplistというXMLを書かなければいけないけれど、MacPortsでインストールした場合、自動起動する必要があると思われる物は /Library/LaunchDaemons/ 以下に必要なplistを入れてくれる。
たとえばApache2を起動したいときは、launchctlを使って

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

とすれば良い。同様にMySQLを自動起動させる場合は、 org.macports.mysql5-devel.plist をloadしてあげればよい。
また自動起動を辞める場合はunloadする。

$ sudo launchctl unload -w /Library/LaunchDaemons/org.macports.apache2.plist

追記

はてブのコメント見てたら自分が勘違いしてたことがわかりました。httpdがapachectlで制御されているように、launchdはlaunchctlで制御しているという話でした。