Como executo um aplicativo baseado em Java Service Wrapper na inicialização

2

Eu quero ser capaz de executar o Sonatype Nexus como um serviço no Mac. Ele vem com os scripts de inicialização do Java Service Wrapper para o mac, então eu basicamente tenho um script de shell que pode iniciar o servidor.

Eu acredito que tenho que adicionar algum tipo de configuração ao /etc/launchd.conf e talvez usar o launchctl. Toda a documentação que encontrei aponta para arquivos plist embora, mas eu não tenho esse arquivo para o Nexus.

    
por Manfred Moser 21.09.2011 / 22:22

1 resposta

2

A maneira preferida de iniciar serviços no OS X é com launchd . Basicamente, você cria um arquivo .plist que descreve o que precisa ser executado e quando, e coloca o arquivo em / Library / LaunchDaemons. O mais complicado é que o launchd espera poder monitorar o daemon, então ele não gosta de coisas que caiam no fundo; Se eu entendi direito nexus, isso significa executá-lo no modo de console, em vez de "iniciá-lo" como você faria na maioria dos sistemas. Eu acho que isso é sobre o que você precisa ter no arquivo (você pode precisar ajustar o caminho para o executável):

<?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>Label</key>
    <string>com.sonatype.nexus</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/nexus/bin/jsw/macosx-universal-32/nexus</string>
        <string>console</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Salve como /Library/LaunchDaemons/com.sonatype.nexus.plist, defina a propriedade para root: wheel e permissions para 644. Para ativá-lo, reinicie ou execute o comando sudo launchctl load /Library/LaunchDaemons/com.sonatype.nexus.plist .

    
por 22.09.2011 / 05:21

Tags