OSX Launchd / Library / LaunchDaemons

1

Eu criei um arquivo plist (veja abaixo) e colei em / Library / LaunchDaemons /. (Ele inicia um virtualbox através de um script que executa o VBoxHeadless.) Eu posso iniciar o plist como usuário "nobody"

sudo -u nobody launchctl load /Library/LaunchDaemons/org.somename.plist

e corre bem (launchctl list | grep -i org.somename). mas não é escolhido por si só na inicialização.

<dict>
    <key>Label</key>             <string>org.somename</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <false/>
    <key>LaunchOnlyOnce</key>    <true/>
    <key>ProgramArguments</key>
        <array>
            <string>/Users/someuser/somename.sh</string>
            <string>restart</string>
        </array>
</dict>

e este plist é chown 600 e chmod root. além disso, somename.sh diz

#!/bin/sh
/usr/bin/VBoxHeadless -s somevm

o que eu poderia estar perdendo?

Existe uma lista de verificação passo-a-passo completa do que é necessário para que um programa seja executado na inicialização? Eu me lembro dos "bons e velhos tempos" onde eu colocava um comando em /etc/rc.local, e ele simplesmente funcionava ....

    
por ivo Welch 21.11.2014 / 02:20

1 resposta

1

Sugiro adicionar as seguintes linhas antes da sua tag </dict> :

<key>StandardErrorPath</key>
<string>/tmp/org.somename.plist.err</string>

<key>StandardOutPath</key>
<string>/tmp/org.somename.plist.out</string>

Em seguida, você poderá verificar esses arquivos e, com sorte, obter mais informações sobre o que aconteceu.

    
por 26.11.2014 / 19:44

Tags