OSX Launchd / Library / LaunchDaemons

1

Creé un archivo plist (ver más abajo) y lo pegué en / Library / LaunchDaemons /. (Inicia un virtualbox a través de un script que ejecuta VBoxHeadless.) Puedo iniciar el plist como usuario "nobody"

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

y funciona bien (launchctl list | grep -i org.somename). pero no se recoge solo al arrancar.

<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>

y este plist es chown 600 y chmod root. además somename.sh dice

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

¿Qué me podría estar perdiendo?

¿Existe una lista de verificación completa paso a paso en algún lugar de lo que se necesita para ejecutar un programa en el momento del arranque? Recuerdo los "buenos viejos tiempos" en los que insertaba un comando en /etc/rc.local, y simplemente funcionaba ...

ivo Welch
fuente

Respuestas:

1

Sugiero agregar las siguientes líneas antes de su </dict>etiqueta:

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

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

Entonces debería poder verificar estos archivos y, con suerte, obtener más información de lo que sucedió.

jherran
fuente
Esto fue muy útil. me dice que el controlador VBoxHeadless Kernel no está instalado (err -1908 en suplibOsInit). Necesito un mecanismo para secuenciar LaunchDaemons, quizás durmiendo, pero mejor marcando la dependencia.
ivo Welch
Pensé que era muy útil y lo hice +1, pero una solución completa tendría que proporcionar una lista de verificación, preferiblemente con formas de verificar después de cada paso que "estamos en camino"
ivo Welch