impossibile caricare script tramite launchctl "comando non trovato"


2

Ho un problema nel caricare uno script per guardare una cartella tramite fswatch in / Library / LaunchAgents Lo script funziona bene quando viene eseguito dal terminale, ma tramite il mio plist, mi dà "Command not found" per fswatch nel log.
Scommetto che ha a che fare con dove lo script è inserito / percorsi specificati o meno ma non riesco a capirlo. Ecco qui:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Debug</key>
    <true/>  
    <key>Label</key>
    <string>org.papers.fswatch</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/papersfswatch.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>    
    <key>StandardErrorPath</key>
    <string>/Users/x/Documents/Computer/Logs/papersfswatch.log</string>
    <key>StandardOutPath</key>
    <string>/Users/x/Documents/Computer/Logs/papersfswatch.log</string>
</dict>
</plist>

Quando lo carico con sudo launchctl load /Library/LaunchAgents/org.papers.fswatch.plist mi dà un servizio eseguito solo per avviso di 0 secondi e nel registro ottengo

    /usr/local/bin/papersfswatch.sh: line 2: fswatch: command not found 

La linea 2 è, ovviamente, il comando fswatch. Perché non lo trova, se viene trovato da Terminal, e come lo indico ad esso. Qualsiasi aiuto molto apprezzato!

J

Risposte:


1

Problema risolto.

Sembra che lo script abbia bisogno del percorso assoluto per fswatch (per qualsiasi motivo) quando eseguito tramite un plist. In questo caso /usr/local/bin/fswatch Funzionando dal terminale fswatch andrà bene, ma non in questo caso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.