Mac OS X에서 권한이 없는 응용 프로그램을 권한이 있는 포트에 바인딩

Mac OS X에서 권한이 없는 응용 프로그램을 권한이 있는 포트에 바인딩

httpd 서버용 launchd.plist 파일을 만들고 싶습니다. 문제는 - httpd가 권한 있는 사용자로 실행될 때 프로세스를 데몬화하여 허용되지 않는다는 것입니다.launchd.plist 매뉴얼 페이지. 슈퍼유저로 실행하지 않으면 권한 있는 포트에 바인딩할 수 없습니다(필수는 아니지만 있으면 좋습니다).

질문 - 권한이 없는 데몬을 권한이 있는 포트에 바인딩하는 옵션은 무엇입니까? 나는 리눅스가특권 바인딩프로젝트. Mac OS X에서 launchd와 작동하는 솔루션이 있습니까? privbind를 사용하고 launchd.plist 형식과 함께 해킹해야 합니까?

답변1

아파치 지원몇 가지 특수 디버깅 정의, -D와 함께 사용:

  • NO_DETACH: 제어 터미널에서 분리하지 마십시오.
  • FOREGROUND: (NO_DETACH 묵시): 제어 터미널에서 데몬화하거나 분리하지 마십시오.
  • ONE_PROCESS(NO_DETACH 및 FOREGROUND 암시): 하위 프로세스는 클라이언트 요청을 처리할 수 없으며 대신 초기 프로세스를 사용합니다.
  • DEBUG(위의 모든 항목 암시): MPM을 추가 로깅을 통해 특수 디버그 모드로 전환합니다.

따라서 "httpd -D FOREGROUND"를 실행하면 해당 데몬이 차단됩니다.

나도 마주쳤다Apache2용 출시 plist가 포함된 포럼 게시물적응할 수도 있습니다.

(참고: 이 중 어느 것도 실제 질문에 대한 답변이 아니라는 것을 알고 있지만 원래 설명된 문제에 유용하기를 바랍니다.)

관련 정보