Vincular aplicativo não privilegiado à porta privilegiada no Mac OS X

5

Gostaria de criar o arquivo launchd.plist para um servidor httpd. O problema é - quando o httpd é executado como usuário privilegiado que daemonizes, o que não é permitido pelo página de manual launchd.plist . Se eu não o executar como superusuário - ele não pode se ligar à porta privilegiada (o que não é necessário, mas é bom ter).

Pergunta - quais são as minhas opções para ligar daemon não privilegiado a uma porta privilegiada? Eu sei que o Linux tem o projeto privbind . Existe uma solução que possa ser usada em conjunto com o launchd do Mac OS X? Posso / Devo usar privbind e cortá-lo junto com o formato launchd.plist?

    
por Eimantas 01.06.2011 / 09:55

1 resposta

1

O Apache suporta várias depurações especiais , a serem usadas com -D:

  • NO_DETACH: não desanexar do terminal de controle.
  • FOREGROUND: (implica NO_DETACH): não desmonte ou desconecte do terminal de controle
  • ONE_PROCESS (implica NO_DETACH e FOREGROUND): não permitir que um processo filho lide com solicitações de clientes; use o processo inicial.
  • DEBUG (implica todas as anteriores): coloca o MPM em um modo de depuração especial com log adicional.

Assim, executando "httpd -D FOREGROUND" irá mantê-lo de daemonizing.

Eu também encontrei um um tópico do fórum com um pld do launchd para o Apache2 que você pode ser capaz de adaptar-se.

(Nota: Eu sei que nenhum destes responde a pergunta atual, mas esperamos que eles sejam úteis para o problema inicialmente descrito.)

    
por 02.06.2011 / 03:17

Tags