Perché il mio processo di avvio è in esecuzione all'avvio anche se la chiave RunAtLoad è impostata su false?

9

Ho un file plist di launchd che uso per eseguire un programma in un momento selezionato ogni giorno. Funziona, ma esegue anche il programma ogni volta che avvio il computer o scarico e ricarico il lavoro utilizzando il programma GUI LaunchControl --- anche se ho la chiave RunAtLoad impostata su false?

Il file plist completo è sotto; si trova in /Library/LaunchAgents/ :

<?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>RunAtLoad</key>
    <false/>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>Label</key>
    <string>com.adbot.plist</string>
    <key>LowPriorityIO</key>
    <true/>
    <key>Program</key>
    <string>/Users/wcm1/programming/ricedh/adbot/adbot.py</string>
    <key>StandardErrorPath</key>
    <string>/tmp/com.adbot.plist.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/com.adbot.plist.out</string>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>10</integer>
            <key>Minute</key>
            <integer>30</integer>
        </dict>
    </array>
</dict>
</plist>

Pensieri?

    
posta user76493 23.04.2014 - 14:32
fonte

1 risposta

10

Probabilmente hai un'interazione tra le chiavi SuccessfulExit e RunAtLoad . La pagina launchd plist manual menziona un'inversione avviene se è impostato RunAtLoad :

SuccessfulExit

If true, the job will be restarted as long as the program exits and with an exit status of zero.

If false, the job will be restarted in the inverse condition. This key implies that "RunAtLoad" is set to true, since the job needs to run at least once before we can get an exit status.

Altri hanno faticato con questo comportamento, vedi launchd ignora RunAtLoad = false .

    
risposta data 23.04.2014 - 15:16
fonte

Leggi altre domande sui tag