У мене розміщений стартовий демон, ~/Library/LaunchAgents
який добре працював у Мавериках. Але вона не розпочнеться в публічній бета-версії Yosemite. Демон-пліст такий (моє ім’я користувача darksair
з UID 501)
<?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>org.darksair.retrmail</string>
<key>ProgramArguments</key>
<array>
<string>/Users/darksair/bin/retrmail.py</string>
</array>
<key>KeepAlive</key>
<false/>
<key>StartInterval</key>
<integer>300</integer>
<key>LaunchOnlyOnce</key>
<false/>
<key>UserName</key>
<string>darksair</string>
<key>ProcessType</key>
<string>Standard</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/darksair/Python/bin:/Users/darksair/Python3/bin:/Users/darksair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
<key>StandardErrorPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
</dict>
</plist>
В основному він повинен працювати ~/bin/retrmail.py
кожні 5 хвилин.
Я зауважую, що в Yosemite launchd оновлений до 2.0, а в startctl є нові команди. я намагався
sudo launchctl kickstart user/501/org.darksair.retrmail
і воно сказало
Could not find service "org.darksair.retrmail" in domain for uid: 501
Я також спробував стару школу
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
і воно сказало
/Users/darksair/Library/LaunchAgents/retrmail.plist: Path had bad ownership/permissions
Файл належить мені та групі працівників. Я спробував і дозвіл 644 і 600 з однаковою помилкою.
Так хтось знає, як правильно підпалити демон, що запускається, в Йосеміті?
ОНОВЛЕННЯ: Схоже, має належати моєму файлу агента запуску root:wheel
. Після того, як я відмовився, я спробував
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
і це не видало жодної помилки. І я думаю, що мій Деймон працює належним чином. Залишаю це питання відкритим, бо пам'ятаю, що в запущеному документі чітко зазначено, що файл агента запуску може бути власником користувача, який управляє демоном.
UPDATE2: Ні, він не працював належним чином. Він запустився лише один раз, але не знову, як ніби він був вивантажений.
ОНОВЛЕННЯ3: Я перейшов на версію бета-версії Yosemite public 3 і змінив свого агента на це
<?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>org.darksair.retrmail</string>
<key>ProgramArguments</key>
<array>
<string>/Users/darksair/bin/retrmail.py</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>UserName</key>
<string>darksair</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/darksair/Python/bin:/Users/darksair/Python3/bin:/Users/darksair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
<key>StandardErrorPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
</dict>
</plist>
Я перезавантажив цей агент, і я думаю, що зараз він працює належним чином. Я все ще залишаю це питання відкритим, тому що я не знаю, що не так з моїм попереднім списком.
На закінчення, що я виявив, що я повинен змінити власника плістера root:wheel
, щоб завантажити його.