Tôi đã cố gắng cập nhật Homebrew đúng giờ với launchd. Tập tin plist của tôi được trình bày ở đây:
<?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>
Nó hoạt động bằng cách nào đó: tôi có thể thực thi launchctl start ms.liu.homebrew.update
thủ công để cập nhật Homebrew của tôi. Tuy nhiên, launchd không thực hiện dịch vụ này định kỳ: những thay đổi cuối cùng đối với tệp mà thiết bị xuất chuẩn chuyển hướng đến là hai ngày trước.
Tôi đã cố gắng để có được thông tin về dịch vụ này nhưng không có gì:
> launchctl print user/%MyPID%/ms.liu.homebrew.update``
Could not find service "ms.liu.homebrew.update" in domain for uid: %MyPID%
Có vẻ như tôi chưa tải thành công dịch vụ của mình. Làm sao? Tôi đã sử dụng launchctl load
nhưng có vẻ như nó đã bị phản đối Thay vào đó, trang Man khuyên bạn nên bootstrap:
> launchctl bootstrap user/%MyPID% %Path-to-plist%
> %Path-to-plist%: Service cannot load in requested session
Tôi nên làm gì? Cách sử dụng đúng cách launchctl bootstrap
và launchctl print
?
Tôi đang chạy OS X Yosemite GM Candidate 1 trên MacBookPro với màn hình Retina (2013).