Що не так у моєму конфігурації запуск?


15

Я намагаюся автоматично запустити SickBeard під час входу

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>

Коли я запускаю, launchctl com.sickbeard.sickbeard.plistце дає мені повідомлення:

launchctl load com.sickbeard.sickbeard.plist launchctl: не було повернено пліст для: com.sickbeard.sickbeard.plist launchctl: не було повернуто ні плісту для: com.sickbeard.sickbeard.plist, що не знайдено для завантаження


Я припускаю, що ви мали на увазі " startctl load com.sickbeard.sickbeard.plist" у вашому командному рядку? Інакше ви отримаєте зовсім іншу помилку ;-)
binarybob

Відповіді:


37

Я припускаю, що шляхи до сценарію python та його параметри є дійсними, інакше, швидше за все, ви побачите помилки в консолі.

Востаннє я бачив цю помилку через те, що в плісті були помилкові символи, наприклад, додаткові пробіли, що спричиняло синтаксичні помилки, і тому змушувало не завантажуватись. Якщо ви запустите plutil -lintваш плейст, це перевірить ваш синтаксис, а також зручно повідомить про рядок, у якому сталася помилка.

plutil -lint com.sickbeard.sickbeard.plist

Якщо це не допомагає, (OSX) Як запустити SickBeard при вході в систему або завантажитися на OSX- потоці на форумах хворих борода, є дещо іншим списком до вашого (болгарська борода працює /usr/localна відміну від /Applications- так це може бути дозволом) і також деякі люди з, здавалося б, такою ж проблемою, як і ви


2
Дякую за твою допомогу. Здається, що копіювання та вставлення принесло додатковий символ, який був прихований. Я повторно ввів весь XML з нано, і він працював чудово.
Жоао Коста,

2
Спасибі, ніколи про це не знав plutil -lint. Дуже зручно!
robmathers

Щойно я знайшов цю публікацію, але перевірка результатів консолі допомагає багато і з налагодженням.
Крило Тан Вонг

2

Як я виявив важкий шлях, ви повинні виконати команду, використовуючи sudo, а також пропустивши повний шлях до .plistфайлу наступним чином (у вашому випадку):

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

Шлях може бути різним для вас, але ви повинні знайти файл, щоб дізнатися його місцезнаходження та передати його, як я цитував launchctlкоманду.


2

Повідомлення nothing found to loadіноді означає, що конфігурація перекривається іншим конфігуратором. Ви змушуєте завантаження, використовуючи опцію "-w" під час використання launchctl load or unload.

Якщо вам доведеться змусити завантажити або вивантажити файл plist, це означає, що у вас є конфігурація, яка перекриває список. Це переопределення створюється, коли ви використовуєте "-w", інакше в файл переопределення не буде додано жодного переопределення. Щоб запобігти цьому випадку, відредагуйте файл нижче, знайдіть ярлик завдання, який потрібно видалити замінити, видаліть необхідні рядки:

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

Наприклад, видаліть цей рядок

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

тоді ви можете використовувати: launchctl load or unload /Library/LaunchDaemons/com.mydomain.myjob.plistбез необхідності "-w" або "-F", ви не повинні мати повідомленняnothing found to load


1

Ви можете додати прапор -F, щоб змусити launchctlзавантажити .plist. Також переконайтеся, що .plist знаходиться в launchctlпошуку шляхів . Якщо ваш .plist десь інший, ви можете також додати прапор -D та вказати домен. На сторінці сторінки:

-D домен
Шукайте файли plist (5), що закінчуються на * .plist у вказаному домені. Дійсні домени включають "система", "локальний", "мережа" та "всі". При наданні типу сеансу доступний додатковий домен для використання під назвою "користувач". Наприклад, без вказаного типу сеансу "-D система" завантажуватиметься з файлів списку властивостей з / System / Library / LaunchDaemons. Якщо тип сеансу пройшов, він завантажиться з / Система / Бібліотека / LaunchAgents.

Переконайтесь, що ви ретельно переглядаєте всю інформацію, що міститься на сторінці сторінки - ви дійсно можете зіпсувати речі, якщо ваш дзвінок неправильно налаштований.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.