시작은 Yosemite의 StartCalendarInterval을 무시하는 것으로 보입니다.


9

출시 된 시간에 Homebrew를 업데이트하려고했습니다. 내 plist 파일은 다음과 같습니다.

<?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>Label</key>
  <string>ms.liu.homebrew.update</string>
  <key>UserName</key>
  <string>LiuMS</string>
  <key>ProcessType</key>
  <string>Background</string>
  <key>EnvironmentVariables</key>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/brew</string>
    <string>update</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>20</integer>
    <key>Minute</key>
    <integer>0</integer>
  </dict>
  <key>StandardOutPath</key>
  <string>/usr/local/logs/ms.liu.homebrew.update.out</string>
  <key>StandardErrorPath</key>
  <string>/usr/local/logs/ms.liu.homebrew.update.err</string>
</dict>
</plist>

어떻게 든 작동합니다 : launchctl start ms.liu.homebrew.updateHomebrew를 업데이트하기 위해 수동으로 실행할 수 있습니다 . 그러나 launchd는이 서비스를 주기적으로 실행하지 않습니다. stdout이 리디렉션하는 파일의 마지막 변경 사항은 이틀 전입니다.

이 서비스에 대한 정보를 얻으려고했지만 아무것도 얻지 못했습니다.

> launchctl print user/%MyPID%/ms.liu.homebrew.update`` 
Could not find service "ms.liu.homebrew.update" in domain for uid: %MyPID%

서비스를 성공적으로로드하지 못한 것 같습니다. 어떻게? 사용 launchctl load했지만 더 이상 사용되지 않는 것 같습니다. 맨 페이지는 대신 부트 스트랩을 권장합니다.

> launchctl bootstrap user/%MyPID% %Path-to-plist%
> %Path-to-plist%: Service cannot load in requested session

어떻게해야합니까? 올바르게 사용하는 방법 launchctl bootstraplaunchctl print?

Retina 디스플레이 (2013)가 장착 된 MacBookPro에서 OS X Yosemite GM Candidate 1을 실행하고 있습니다.

답변:


2

나는 단지이 것들을 해결하기 시작했다. 그래서이 답변은 잠정적이다 – 그러나 나는 그것이 전혀 답이없는 것보다 더 도움이되기를 바란다. (충분한 담당자가 있다면 의견으로 남겨 두었을 것입니다.)

이 plist가 ~/Library/LaunchAgents디렉토리에 있습니까? 이들은 gui도메인이 아닌 도메인 으로 부트 스트랩 된 것 같습니다 user. 그래서 당신은 할 수 있습니다 :

launchctl print gui/%UID%/ms.liu.homebrew.update

작동해야합니다. (그렇습니까?)

아마도 user도메인에 부트 스트랩 할 수없는 이유 는 이미 gui도메인에 부트 스트랩되어 있기 때문 입니다.

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