launchd non eseguirà uno script caricato al riavvio

1

quindi ho qualche problema con launchd

Ho fatto questo 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>

Il mio problema è questo. Quando carico lo script manualmente:

launchctl load /Library/LaunchDaemons/script.plist

Funziona come un fascino. Si carica perfettamente e esegue lo script come dovrebbe. ora quando riavvio, carica lo script come dovrebbe, ma ora lo script non verrà avviato. Anche se quando avvio lo script

launchctl start mosek.mountd

funziona. Quindi deve ignorare la chiave "RunAtLoad", quando carica lo script al riavvio. Perché lo fa e come lo risolvo?

esulta in anticipo

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
    
posta Tomas 24.10.2013 - 10:58
fonte

2 risposte

1

Verifica le tue autorizzazioni. Il file script.plist dovrebbe apparire come questo

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

Da man launchctl

Note that per-user configuration files (LaunchAgents) must be owned by the user loading them. All system-wide daemons (LaunchDaemons) must be owned by root. Configuration files must not be group- or world-writable.

    
risposta data 24.10.2013 - 11:10
fonte
0

Amico, suggerisco alcune modifiche al file plist:

Add:

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

Quindi modifica gli Strumenti del Programma per riflettere il 'nome di base' dello script - il suo nome senza il percorso completo, o 'nome_directory'. Voglio dire, supponendo che "/usr/local/bin/mosek.mountd.sh" sia lo script che vuoi eseguire:

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

Questo dovrebbe risolvere il problema. Per favore fatemi sapere se questo aiuta.

F.

    
risposta data 27.08.2017 - 08:49
fonte

Leggi altre domande sui tag