Chính xác thì "miền" và "mục tiêu dịch vụ" này là gì và làm cách nào để liên kết chúng với các mục để sử dụng bởi launchd?
OS X 10.10 giới thiệu một launchctl
API mới để quản lý LaunchDaemons và khởi chạy các chuỗi. Nhật ký thông điệp và trang man gợi ý rằng các khóa thích KeepAlive
và RunAtLoad
không nên được sử dụng nữa và các tiểu ban đó enable
; bootstrap
; và kickstart
nên được sử dụng theo sở thích load -w
vàunload -w
Tuy nhiên, không rõ các trang hướng dẫn làm thế nào để liên kết một số nguyên với "miền" và "mục tiêu dịch vụ" mà nó nói về và không có các lệnh này không thể được sử dụng với các bảng hiện có dường như khá đủ cho OS X 10.9
Ví dụ [đã cập nhật]: Một nguyên tắc cơ bản mà chúng tôi đang cố gắng "khởi chạy"; dường như bootstrapping vào miền "system" nhưng sau đó không được nhận dạng trong "system"
# pwd
/Library/LaunchDaemons
# cat com.iainhouston.django.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.iainhouston.django</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/virtualenvs/django.iainhouston.com/bin/gunicorn</string>
<string>--bind=127.0.0.1:49202</string>
<string>--workers=2</string>
<string>superlists.wsgi:application</string>
</array>
<key>Disabled</key><false/>
</dict>
</plist>
# launchctl bootstrap system com.iainhouston.django.plist
/Library/LaunchDaemons/com.iainhouston.django.plist: Service is disabled
# launchctl enable system/com.iainhouston.django.plist
# launchctl kickstart system/com.iainhouston.django.plist
Could not find service "com.iainhouston.django.plist" in domain for system
Động lực
Các hồ sơ đăng nhập hệ thống mà launchctl -w load ...
phàn nàn khi chúng tôi sử dụng KeepAlive
với RunAtLoad
rằng dịch vụ này được định nghĩa để được liên tục chạy và vốn không hiệu quả. vì vậy chúng tôi có động lực để sử dụng giao diện mới.
Không chỉ vậy, chúng tôi gặp vấn đề đáng kể với việc sử dụng bộ xử lý quá mức mà chúng tôi muốn kiểm soát bằng cách cung cấp các từ khóa theo yêu cầu phù hợp, vì vậy, một lần nữa, chúng tôi có động lực để hiểu cách tương tác với launchd mới .... không dễ dàng với các tài liệu khi họ đứng!
RunAtLoad
: "Cần tránh khóa này, vì các công việc đầu cơ khởi động có ảnh hưởng xấu đến các kịch bản khởi động hệ thống và đăng nhập người dùng." Tuy nhiên, không có loại công việc ví dụ hoặc đề xuất để sử dụng. Rất không đạt yêu cầu.