RunAtLoad 키가 false로 설정되어 있는데도 부팅시 시작된 작업이 실행되는 이유는 무엇입니까?


10

매일 선택한 시간에 프로그램을 실행하는 데 사용되는 plist 파일이 시작되었습니다. 작동하지만 컴퓨터를 부팅하거나 GUI 프로그램 LaunchControl-을 사용하여 작업을 언로드 및 다시로드 할 때마다 키가 false로 설정되어 있어도 프로그램을 실행 합니까?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

SuccessfulExitRunAtLoad키 사이에 상호 작용이있을 수 있습니다 . 수동 launchd에의 PLIST 경우 페이지는 반전 언급이 발생 RunAtLoad집합입니다 :

성공한 종료

true 인 경우 프로그램이 종료되고 종료 상태가 0 인 동안 작업이 다시 시작됩니다.

False이면 역 조건에서 작업이 다시 시작됩니다. 이 키는 "RunAtLoad"가 true로 설정되었음을 나타냅니다. 종료 상태를 얻기 전에 작업을 한 번 이상 실행해야하기 때문입니다.

다른 사람들은이 행동으로 어려움을 겪었습니다 . launchd ignores RunAtLoad = false 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.