क्यों मेरा लॉन्चड काम जॉब पर चल रहा है यहां तक ​​कि RunAtLoad कुंजी के साथ गलत सेट किया गया है?


10

मेरे पास एक लॉन्चड प्लास्ट फाइल है जिसे मैं हर दिन एक चयनित समय पर एक प्रोग्राम चलाने के लिए उपयोग करता हूं। यह काम करता है, लेकिन यह प्रोग्राम भी चलाता है जब भी मैं कंप्यूटर को बूट करता हूं और GUI प्रोग्राम LaunchControl का उपयोग करके काम को फिर से लोड करता हूं --- फिर भी मेरे पास RunAtLoadझूठे के लिए महत्वपूर्ण सेट है?

पूर्ण plist फ़ाइल नीचे है; यह में स्थित है /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>

विचार?


ऐसा प्रतीत होता है कि मेरी KeepAliveपरिभाषा आसन्न थी RunAtLoad, और यहां तक ​​कि RunAtLoadझूठे को सेट करने के मेरे प्रयास को ओवरराइड कर रहा था । निश्चित नहीं है कि ऐसा क्यों है, लेकिन KeepAliveब्लॉक को हटाने से लगता है कि समस्या ठीक हो गई है।
user76493

जवाबों:


10

आपके पास कुंजी SuccessfulExitऔर RunAtLoadकुंजियों के बीच एक सहभागिता है । Launchd plist मैनुअल पेज एक व्युत्क्रम का उल्लेख होता है, तो RunAtLoadएक समूह है:

SuccessfulExit

अगर यह सच है, तो जब तक कार्यक्रम बाहर निकलता है और शून्य की स्थिति से बाहर निकल जाता है, तब तक नौकरी को फिर से शुरू किया जाएगा।

यदि गलत है, तो नौकरी को उलटा स्थिति में फिर से शुरू किया जाएगा। इस कुंजी का तात्पर्य है कि "RunAtLoad" सही पर सेट है, क्योंकि नौकरी से कम से कम एक बार चलने से पहले हमें निकास की स्थिति मिल सकती है।

अन्य लोगों ने इस व्यवहार के साथ संघर्ष किया है, लॉन्च को अनदेखा करें RunAtLoad = false

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.