Lançar um daemon após outro daemon no Mac OS X

5

Como alguém criaria uma dependência entre dois daemons lançados no início do sistema?

Eu gostaria de iniciar o sonar quando o sistema for iniciado, mas ele requer que o servidor mysql já esteja funcionando.

Não encontrei uma maneira explícita de definir uma dependência de processo nos plots de inicialização.

E na página da Wikipedia, há uma frase muito encorajadora:

The hardest part to manage during a launchd boot is dependencies.

Daemon do Sonar:

<?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>WorkingDirectory</key>
    <string>/usr/local/Sonar/sonarinstall</string>
    <key>Label</key>
    <string>org.sonarsource.sonar</string>
    <key>KeepAlive</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>bin/macosx-universal-64/sonar.sh</string>
        <string>start</string>
    </array>
    <key>UserName</key>
    <string>server1</string>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>  

daemon do MySQL:

<?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>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>homebrew.mxcl.mysql</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/opt/mysql/bin/mysqld_safe</string>
    <string>--bind-address=127.0.0.1</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/var</string>
</dict>
</plist>
    
por florian 23.05.2014 / 13:46

1 resposta

1

Você pode alcançar seu objetivo alterando a KeepAlive -part do seu MySQL-plist.

O seguinte deve (em teoria) fornecer o que você está procurando:

<key>KeepAlive</key>
<dict>
    <key>OtherJobEnabled</key>
    <string>org.sonarsource.sonar</string>
</dict>

Isso deve resultar no MySQL sendo iniciado antes do servidor de sonar e mantido ativo enquanto o servidor de sonar for executado.

Para mais informações, veja esses recursos:

Se isso não funcionar, a Apple solicitará que você use o InterProcessCommunication (IPC) para que sua configuração funcione. Mas para ser honesto, isso está além do meu conhecimento! Alguém pode pular lá.

    
por 24.05.2014 / 10:36