Я написав 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>
launchd
зміг почати це добре, то в чому питання? Чому ви не можете залишити його таким чином, замість того, щоб передати користувачеві / паролю скрипт? Якщо він працює з користувачем / паролем, вбудованим у скрипт launchd
але не передано до нього через launchd
тоді проблема з'являється, що ви не можете передати її через launchd
і залишити його вбудованим є шлях. До речі, коли я сказав " Може бути, навіть AppleScript теж ", Я мав на увазі фактичний AppleScript не його номер версії.
launched
обробляє це будь-який інший? Також просто як тест, який я запланувавcron
щоб побачити, як він обробляє його. До речі, ви повинні включити версію OS X, яку ви використовуєте у своєму повідомленні. Може бути, навіть AppleScript теж.