Come eseguire un comando shell one-liner usando launchd?

2

Di seguito è riportato un esempio di ciò che sto cercando di fare:

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

Il plist è stato aggiunto a /Library/LaunchDaemons quindi dovrebbe essere eseguito all'avvio per tutti gli utenti, giusto? permessi file appropriati sono stati impostati.

Lo script deve essere eseguito come processo in background e richiede anche la connettività di rete. Come posso assicurarmi che il plist non si avvii finché non viene stabilito l'accesso a Internet?

    
posta lily 18.05.2018 - 17:25
fonte

1 risposta

3

Vuoi includere questo controllo per lo stato della rete:

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

Inoltre, probabilmente vorrai passare correttamente gli argomenti del tuo programma:

<key>ProgramArguments</key>
<array>
    <string>/usr/local/bin/binaryname</string>
    <string>arg1</string>
    <string>arg2</string>
</array>
    
risposta data 19.05.2018 - 02:43
fonte

Leggi altre domande sui tag