Mac - Execute o programa java no lançamento

2

Eu quero lançar um programa java (programa do servidor) na inicialização do computador. Eu posso executá-lo a partir da linha de comando perfeitamente.

Eu criei /Library/Server/startFS.sh . O arquivo é executável pela raiz e contém:

cd /Library/Server/FiloSync
/usr/bin/java -jar /Library/Server/FiloSync/filosync-server-latest.jar -p 7000 -s 7001

Não consigo incluir meu launchd .plist aqui, a formatação está desativada.

Eu posso executá-lo bem a partir da linha de comando: ./startFS.sh , mas quando eu coloco criar o plist (via Lingon), nada acontece.

Agora, quando executado, gera algumas linhas para o console. Pode ser problema?

Eu tentei inserir nohup e acrescentar & , mas nenhuma combinação parece funcionar.

    
por emd 28.10.2013 / 03:52

1 resposta

2

Salve uma lista de propriedades como /Library/LaunchAgents/some.label.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>Label</key>
  <string>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>java</string>
    <string>-jar</string>
    <string>/Library/Server/FiloSync/filosync-server-latest.jar</string>
    <string>-p</string>
    <string>7000</string>
    <string>-s</string>
    <string>7001</string>
  </array>
  <key>RunAtLoad</key>
  <true/> <!-- run the program at login -->
  <key>KeepAlive</key>
  <true/> <!-- run the program again if it terminates -->
  <key>WorkingDirectory</key>
  <string>/Library/Server/FiloSync</string>
</dict>
</plist>

Verifique se o arquivo é de propriedade do root. Se não for, pode ser carregado sem sudo, mas não é carregado automaticamente no login. Em seguida, efetue logout e volte a testar se o programa foi iniciado.

Para mais informações, consulte man launchd.plist , a nota técnica Daemons and Agents ou link .

    
por 28.10.2013 / 13:02