Có gì sai với cấu hình launchctl của tôi?


15

Tôi đang cố gắng tự động chạy SickBeard khi đăng nhập

python /Applications/Sick-Beard/Sickbeard.py

<?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.sickbeard.sickbeard</string>
  <key>ProgramArguments</key>
  <array>
       <string>/usr/bin/python</string>
       <string>/Applications/Sick-Beard/SickBeard.py</string>
       <string>-q</string>
       <string>-d</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Khi tôi chạy launchctl com.sickbeard.sickbeard.plistnó cho tôi thông báo:

launchctl tải com.sickbeard.sickbeard.plist launchctl: không có plist nào được trả về cho: com.sickbeard.sickbeard.plist launchctl: không có plist nào được trả về cho: com.sickbeard.sickbeard.plist


Tôi giả sử bạn có nghĩa là "launchctl tải com.sickbeard.sickbeard.plist" trong dòng lệnh của bạn? Nếu không, bạn sẽ gặp một lỗi hoàn toàn khác ;-)
binarybob

Câu trả lời:


37

Tôi giả sử các đường dẫn đến tập lệnh python và các tham số của nó là hợp lệ, nếu không, rất có thể bạn sẽ thấy lỗi trong Bảng điều khiển thay thế.

Lần cuối cùng tôi thấy lỗi đó là do có các ký tự giả trong bảng, ví dụ: khoảng trắng thừa, gây ra lỗi cú pháp và do đó khiến nó không tải được. Nếu bạn chạy plutil -linttrên plist của bạn, điều này sẽ kiểm tra cú pháp cho bạn và cũng handily báo cáo lại dòng mà trên đó các lỗi xảy ra.

plutil -lint com.sickbeard.sickbeard.plist

Nếu điều đó không có ích, thì (OSX) Cách khởi động SickBeard khi đăng nhập hoặc khởi động trên luồng OSX trên các diễn đàn ốm đau có một chút khác biệt với bạn (bệnh hoạn chạy từ /usr/localtrái ngược với /Applications- vì vậy nó có thể là một điều cho phép) và cũng có một số người có vấn đề giống như bạn


2
Cảm ơn sự giúp đỡ của bạn. Có vẻ như việc sao chép và dán đã mang lại một nhân vật phụ bị ẩn đi. Tôi đã thử lại toàn bộ XML bằng nano và nó hoạt động rất tốt.
Joao Costa

2
Cảm ơn, không bao giờ biết về plutil -linttrước đây. Rất tiện dụng!
kẻ cướp

Chỉ tìm thấy bài đăng này, nhưng kiểm tra đầu ra Console cũng giúp ích rất nhiều cho việc gỡ lỗi.
Cánh Tang Wong

2

Khi tôi phát hiện ra một cách khó khăn, bạn phải thực thi lệnh bằng cách sử dụng sudocũng như chuyển toàn bộ đường dẫn của .plisttệp như sau (trong trường hợp của bạn):

sudo launchctl load /Library/LaunchDaemons/com.sickbeard.sickbeard.plist

Đường dẫn có thể khác với bạn, nhưng bạn phải xác định vị trí tệp để tìm ra vị trí của nó và chuyển nó như tôi đã trích dẫn cho launchctllệnh.


2

Thông báo nothing found to loadcó nghĩa là đôi khi cấu hình bị ghi đè bởi một cấu hình khác. Bạn buộc tải bằng cách sử dụng tùy chọn "-w" khi sử dụng launchctl load or unload.

Nếu bạn phải buộc tải hoặc hủy tải tệp plist, điều đó có nghĩa là bạn có một cấu hình ghi đè lên bảng. Ghi đè này được tạo khi bạn sử dụng "-w" nếu không sẽ không ghi đè vào tệp ghi đè. Để ngăn chặn trường hợp này, hãy chỉnh sửa tệp bên dưới, tìm kiếm nhãn công việc mà bạn muốn xóa ghi đè, xóa các dòng cần thiết:

pico /var/db/launchd.db/com.apple.launchd/overrides.plist

Ví dụ: xóa dòng này

<key>com.mydomain.myjob</key>
<dict>
        <key>Disabled</key>
        <true/>
</dict>

sau đó bạn có thể sử dụng: launchctl load or unload /Library/LaunchDaemons/com.mydomain.myjob.plistkhông cần "-w" hoặc "-F", bạn không nên có tin nhắnnothing found to load


1

Bạn có thể muốn thêm cờ -F để buộc launchctltải .plist. Ngoài ra, hãy chắc chắn rằng .plist nằm trong đường dẫn launchctltìm kiếm. Nếu .plist của bạn ở một nơi khác, bạn cũng có thể thêm cờ -D và chỉ định tên miền. Từ trang hướng dẫn:

-D domain
Tìm kiếm các tệp plist (5) kết thúc bằng * .plist trong miền đã cho. Các miền hợp lệ bao gồm "hệ thống", "cục bộ", "mạng" và "tất cả." Khi cung cấp loại phiên, một tên miền bổ sung có sẵn để sử dụng được gọi là "người dùng". Ví dụ: không có loại phiên được cung cấp, "-D system" sẽ tải từ các tệp danh sách thuộc tính từ / System / Library / LaunchDaemons. Với loại phiên được thông qua, nó sẽ tải từ / System / Library / LaunchAgents.

Đảm bảo rằng bạn xem xét kỹ tất cả thông tin có trong trang chủ - bạn thực sự có thể phá hỏng mọi thứ nếu cuộc gọi của bạn không được cấu hình đúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.