Liên kết của Steve Folly là chính xác, nhưng để có nó ở đây:
Tạo một tệp plist (chỉ là một tài liệu XML văn bản đơn giản) được đặt tên giống như com.domain.identifier.plist trong / Library / LaunchDaemons với nội dung tương tự như sau:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.domain.identifier</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/kextload</string>
<string>/System/Library/Extensions/MyExtension.kext</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>UserName</key>
<string>root</string>
</dict>
</plist>
(Có một manpage, launchd.plist (5) chỉ định cú pháp của các tệp plist LaunchDaemon.)
Sau đó tôi đã chuyển đổi nó thành một tệp plist nhị phân chỉ để kiểm tra cú pháp tầm thường:
plutil -convert binary1 com.domain.identifier.plist
Sau đó kích hoạt LaunchDaemon để chạy khi khởi động:
launchctl load -w /Library/LaunchDaemons/com.domain.identifier.plist
Và kiểm tra để chắc chắn rằng nó ở trong đó:
launchctl list | grep com.domain.identifier
LaunchDaemon sẽ chạy khi khởi động và tải kext.
kext
đến/Library/Extensions
, đặt quyền cho 755 và chủ sở hữu / nhóm thành root: wheel và xây dựng lại bộ đệm kernel sau khi tải nó?