1 つの方法は、アプリケーションの Erlang コアを、Cocoa フロントエンドが、考案した単純なプロトコルを使用して Unix ドメイン ソケットを介して通信するデーモンにすることです。
Unix ドメイン ソケットの使用は、Erlang デーモンをオンデマンドで起動できlaunchd
、Cocoa フロントエンドが環境変数を介して使用するソケットへのパスを見つけることができることを意味します。これにより、アプリとデーモンの間のランデブーが簡単になり、複数のフロントエンド (または、デーモンとの通信をラップするフレームワーク) の開発も簡単になります。
このように、Mac OS Xlaunchd
システムは非常に優れています。安全な Unix ドメイン ソケットを介してオンデマンドでジョブを起動するように指定すると、launchd
は実際にソケット自体を適切な権限で作成し、ジョブのプロパティ リストで指定された環境変数を介してその場所を通知します。launchd
ジョブが開始されると、単純なチェックインを実行するときに、実際にファイル記述子がソケットに渡されます。
最終的にこれは、フロントエンドがソケットを開いてデーモンと通信し、デーモンを起動し、通信に応答するデーモンのプロセス全体が、launchd
フロントエンドとデーモンが異なる特権レベルで実行されている場合でも安全であることを意味します。 .