YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

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で制御しているという話でした。