launchd no ejecutará un script cargado al reiniciar

1

así que estoy teniendo algunos problemas con launchd

Hice este plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>mosek.mountd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/etc/mountd</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Mi problema es este. Cuando cargo el script manualmente:

launchctl load /Library/LaunchDaemons/script.plist

Funciona como un encanto. Se carga perfectamente, y ejecuta el script como debería. ahora cuando reinicio, carga la secuencia de comandos como debería, pero ahora la secuencia de comandos no se inicia. Aunque cuando comienzo el script

launchctl start mosek.mountd

funciona. Por lo tanto, debe ignorar la clave "RunAtLoad" cuando carga el script al reiniciar. ¿Por qué hace eso y cómo lo arreglo?

saludos de antemano

edit:
    I forgot to mention that I also made root the owner of the file by running:
         chmod root /Library/LaunchDaemons/script.plist
    and it still wouldn't work
    
pregunta Tomas 24.10.2013 - 10:58

2 respuestas

1

Revisa tus permisos. El archivo script.plist debería tener este aspecto

-rw-r--r-- 1 wheel 410 16 ...

Desde man launchctl

  

Tenga en cuenta que los archivos de configuración por usuario (Agentes de inicio) deben ser propiedad del usuario que los carga. Todos los demonios de todo el sistema (LaunchDaemons) deben ser propiedad de root. Los archivos de configuración no deben ser de grupo o de escritura mundial.

    
respondido por el napcae 24.10.2013 - 11:10
0

Mi amigo, sugiero algunas modificaciones al archivo plist:

Añadir:

<key>Program</key>
     <string>/where/the/script/you/want/to/be/executed/resides</string>

Luego, modifique los ProgramArguments para reflejar el 'nombre base' del script, su nombre sin la ruta completa o 'dirname'. Me refiero a esto, asumiendo que '/usr/local/bin/mosek.mountd.sh' es el script que desea ejecutar:

<key>Program</key>
     <string>/usr/local/bin/mosek.mountd.sh</string>
<key>ProgramArguments</key>
     <array>
          <string>mosek.mountd.sh</string>
          <string>/etc/mountd</string>
     </array>

Esto debería resolver el problema. Por favor, avíseme si esto ayuda.

F.

    
respondido por el Francis from ResponseBase 27.08.2017 - 08:49

Lea otras preguntas en las etiquetas