Помилка виконання AppleScript через Launchd - "Служба не може ініціалізуватися"


1

Я написав AppleScript, який вмикає або вимикає бездротове радіомовлення нашого модему CenturyLink. Він працює, коли я запускаю його вручну за допомогою JavaScript, але тепер я намагаюся створити його за розкладом з Launchd. У журналі консолі я отримую таку помилку:

10/11/15 3:10:03.178 PM com.apple.xpc.launchd[1]: (com.highintegritydesign.wirelessgenie[25674]) Service could not initialize: 14F27: xpcproxy + 13421 [1402][AD0301C4-D364-31CE-8BA7-B5DBECE64D0A]: 0xd

Сценарій називається wireless-genie.scpt і він знаходиться у моєму домашньому каталозі, з правами доступу 755 і належить мені. Я можу успішно запустити його вручну з домашньої теки з:

osascript wireless-genie.scpt mywirelessmodemadminuser mywirelessmodempassword

Пліст називається com.highintegritydesign.wirelessgenie.plist, показаний нижче. Я розмістив це у / Library / LaunchDaemons, і він також має права доступу 755 і належить root.

Я бігаю "plutil -lint" на com.highintegritydesign.wirelessgenie.plist і він говорить, що plist A-OK. Я завантажив plist з "launchctl load com.highintegritydesign.wirelessgenie.plist" .

Я не знаю, чому сценарій не буде виконуватися. Будь-які ідеї? Дякую.

<?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>com.highintegritydesign.wirelessgenie</string>
    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>/Users/north/Documents/sites/wireless-genie/wireless-genie.scpt</string>
        <string>mywirelessmodemadminuser</string>
        <string>mywirelessmodempassword</string>        
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Minute</key>
        <integer>10</integer>
        <key>Hour</key>
        <integer>15</integer>
    </dict>
    <key>StandardErrorPath</key>
    <string>/var/log/wirelessgenie.log</string>
</dict>
</plist>

Оскільки ви ставите користувач / пароль у .plist, ви спробували його кодувати у скрипт, щоб побачити, чи є launched обробляє це будь-який інший? Також просто як тест, який я запланував cron щоб побачити, як він обробляє його. До речі, ви повинні включити версію OS X, яку ви використовуєте у своєму повідомленні. Може бути, навіть AppleScript теж.
user3439894

Я на OS X 10.10.5, редактор сценаріїв каже, що його версія становить 2.7, і він генерує AppleScript 2.4. Так, я спробував кодувати те ж ім'я користувача та пароль у скрипті, і він працює нормально. Я не пробував cron. Якщо це працює, це, безумовно, вказати пальцем на plist. Але це не допоможе діагностувати те, що сталося з plist.
North Krimsly

Отже, якщо ви закодували користувача / пароль в скрипт і launchd зміг почати це добре, то в чому питання? Чому ви не можете залишити його таким чином, замість того, щоб передати користувачеві / паролю скрипт? Якщо він працює з користувачем / паролем, вбудованим у скрипт launchd але не передано до нього через launchd тоді проблема з'являється, що ви не можете передати її через launchd і залишити його вбудованим є шлях. До речі, коли я сказав " Може бути, навіть AppleScript теж ", Я мав на увазі фактичний AppleScript не його номер версії.
user3439894

Ах, я бачу, що ви маєте на увазі. Я неправильно зрозумів. Сценарій працював, коли я кодував ім'я користувача і пароль до нього, але запускав його вручну. Я все ще змушую його працювати, коли виконується через Launchd.
North Krimsly

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