¿Cómo ejecutar un comando de shell de una sola línea usando launchd?

2

A continuación se muestra 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 se agregó a /Library/LaunchDaemons por lo que debería ejecutarse en el inicio para todos los usuarios, ¿verdad? Los permisos de archivo apropiados se establecieron.

El script debe ejecutarse como un proceso en segundo plano y también requiere conectividad de red. ¿Cómo puedo asegurarme de que Plist no se inicie hasta que se establezca el acceso a Internet?

    
pregunta lily 18.05.2018 - 17:25

1 respuesta

3

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

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

Además, es probable que desee pasar los argumentos de su programa correctamente:

<key>ProgramArguments</key>
<array>
    <string>/usr/local/bin/binaryname</string>
    <string>arg1</string>
    <string>arg2</string>
</array>
    
respondido por el Alex 19.05.2018 - 02:43

Lea otras preguntas en las etiquetas