Mac OS X: executando um serviço? (especificamente apachectl em outro local)

0

Estou tentando executar uma instalação alternativa do httpd apache (não pergunte) no meu Mac. Eu posso fazer isso, mas ele só funciona enquanto eu estiver logado, e eu continuo tendo que digitar

sudo /opt/local/apache2/bin/apachectl -k start

e queria saber se havia uma maneira de configurar um serviço no meu Mac, então não preciso continuar fazendo isso.

    
por Jason S 16.11.2009 / 02:38

2 respostas

2

A melhor opção é usar launchd o substituto interno para cron , init e xinetd . Para fazer isso, você precisa criar um documento XML (especificamente um .plist) para definir o que deseja fazer. Um programa chamado Lingon fornece uma excelente GUI para fazer isso e a instalação também.

Você pode salvar o seguinte arquivo como com.example.apache2.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>Label</key>
    <string>com.example.apache2</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/local/bin/apache2/bin/apachectl</string>
        <string>-k</string>
        <string>start</string>
    </array>
</dict>
</plist>

Você então deseja instalar este .plist em /Library/LaunchDaemons porque deseja que isso seja executado quando o computador for inicializado (como um serviço). Você pode fazer isso copiando o arquivo para /Library/LaunchDaemons (Daemons do usuário no Lingon) e executando o comando sudo launchctl load -w /Library/LauchDaemons/com.example.apache2.plist . Então, sempre que o computador é iniciado, o comando é executado. De nota, os Daemons de Lançamento em /Library são executados como root, então você não precisa do sudo.

Para mais informações sobre o launchd, confira a página man , a página do manual do launchd.plist , Introdução ao launchd , ou você pode pesquisar aqui no Superusuário, pois já existem várias perguntas sobre o launchd.

    
por 16.11.2009 / 06:44
0

A maneira correta de fazer isso seria através do launchd.

link

    
por 16.11.2009 / 05:08