Mac OS Xで、権限のないアプリケーションを権限のあるポートにバインドする

Mac OS Xで、権限のないアプリケーションを権限のあるポートにバインドする

httpdサーバー用のlaunchd.plistファイルを作成したいと思います。問題は - httpdが特権ユーザーとして実行されたときにプロセスをデーモン化することで許可されないことです。launchd.plist のマニュアルページ。スーパーユーザーとして実行しないと、特権ポートにバインドすることはできません(必須ではありませんが、お勧めします)。

Q - 権限のないデーモンを権限のあるポートにバインドするオプションは何ですか?私はLinuxが特権バインディングプロジェクト。 Mac OS Xでlaunchdと連携するソリューションはありますか? privbindを使用してlaunchd.plist形式でハックする必要がありますか?

ベストアンサー1

Apacheのサポートいくつかの特別なデバッグ定義、-Dで使用:

  • NO_DETACH:制御端末から切り離さないでください。
  • FOREGROUND: (NO_DETACH 暗黙): 制御端末からデーモン化したり、分離しないでください。
  • ONE_PROCESS(NO_DETACHおよびFOREGROUND暗黙):子プロセスはクライアント要求を処理できず、代わりに初期プロセスを使用します。
  • DEBUG(上記のすべてを暗示):MPMを追加のロギングを介して特別なデバッグモードに切り替えます。

したがって、「httpd -D FOREGROUND」を実行すると、そのデーモンがブロックされます。

私も遭遇したApache2用のリリースplistを含むフォーラム投稿適応することもできます。

(注:これらのどれも実際の質問に対する答えではないことを知っていますが、もともと説明した問題に役立つことを願っています。)

おすすめ記事