2 votos

Cómo ejecutar una línea de comandos de shell usando launchd?

A continuación es un ejemplo de lo que estoy tratando de hacer:

    <?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>fooLabel</string>
        <key>Something</key>
        <string>/bin/bash foo -arg 1 -arg 2 &</string>
</dict> 
</plist>

El plist fue añadido a /Library/LaunchDaemons por lo que se debe ejecutar en el arranque para todos los usuarios, derecho? Los permisos de archivo adecuado .

La secuencia de comandos debe ejecutarse como un proceso en segundo plano y también requiere conectividad de red. Cómo puedo asegurarme de que el plist no se iniciará hasta que el acceso a internet está establecido?

3voto

geocoin Puntos 121

Desea incluir esta comprobación de estado de la red:

<dict>
  <key>NetworkState</key>
  <true/>
</dict>

También es probable que desee pasar en su programa args correctamente:

<key>ProgramArguments</key>
<array>
    <string>/usr/local/bin/binaryname</string>
    <string>arg1</string>
    <string>arg2</string>
</array>

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X