Посилаючись на http://launchd.info :
- ~ / Бібліотека / LaunchAgents та / Library / LaunchAgents використовуються для користувача, який наразі увійшов у систему.
- / Бібліотека / LaunchDaemons призначена для запуску речей як root ( або користувача, вказаного
UserName
ключем), коли машина завантажується.
Ключа (каламбур), однак, полягає в тому , що plists поміщені в /Library/LaunchDaemons/
повинні бути в власності шляхом root:wheel
і має бути chmod 644
.
Отже, тільки те, що nrpe
створює пліст, не означає, що він буде працювати під завантаженням без входу.
Я встановив його через brew
себе, і наприкінці написано:
To have launchd start nrpe at login:
ln -sfv /usr/local/opt/nrpe/*.plist ~/Library/LaunchAgents
Then to load nrpe now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nrpe.plist
Я рекомендую зробити це замість цього:
chmod 644 /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist
sudo chown root:wheel /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist
sudo ln /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist /Library/LaunchDaemons/homebrew.mxcl.nrpe.plist
Перший рядок гарантує правильність дозволів.
Другий рядок гарантує правильність власності
Третій / останній рядок посилає файл з / usr / local / opt / nrpe / на / Library / LaunchDaemons (відзначте відсутність ~
якого є навмисним).
Тоді вам потрібно переконатися, що файл не існує в ~ / LaunchAgents, що було б заплутано:
rm -f "$HOME/Library/LaunchAgents/homebrew.mxcl.nrpe.plist"
Це видалить файл (якщо він існує).
Важливо
Помістивши файл у /Library/LaunchDaemons
вас, ви скажете nrpe
запустити як root
. Це може бути нормально, або це може бути дуже погана ідея. Я не знаю відповіді на це питання. Тим НЕ менше, щоб бути в безпеці , я б його явно запустити як користувач інший , ніж корінь , якщо я не був абсолютно впевнений. Крім того, я б використовував launchd
можливість увімкнути помилки, щоб побачити, чи працює він добре.
Для цього вам потрібно буде відредагувати вищезазначений список. Ось файл, як він створений, станом на 2016/04/20:
<?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.nrpe.agent</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nrpe</string>
<string>-c</string>
<string>/usr/local/etc/nrpe.cfg</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Homebrew NRPE Agent</string>
<key>Debug</key>
<true/>
</dict>
</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>Debug</key>
<true/>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
<key>Label</key>
<string>org.nrpe.agent</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nrpe</string>
<string>-c</string>
<string>/usr/local/etc/nrpe.cfg</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Homebrew NRPE Agent</string>
<key>StandardErrorPath</key>
<string>/tmp/org.nrpe.agent.stderr.log</string>
<key>StandardOutPath</key>
<string>/tmp/org.nrpe.agent.stdout.log</string>
<key>UserName</key>
<string>INSERTUSERNAMEHERE</string>
</dict>
</plist>
Замініть INSERTUSERNAMEHERE
фактичне ім’я користувача, якого ви хочете nrpe
запустити.
Застарілий
Зверніть увагу, що згідно з LaunchControl (найкращим додатком для управління запущеними списками) Debug
ключ застарілий для OS X 10.10 і буде ігнорований.
Перезавантажте
Після того, як у вас є файл, найкращим способом його перевірки буде перезавантаження системи та НЕ вхід на консоль. Натомість після завершення процесу завантаження увійдіть у систему через систему ssh
та переконайтеся, що процес запущений, і перевірте два файли журналу, щоб побачити, що, якщо щось там ви бачите.
Я сподіваюся, що це допомагає.
ps - витратити 10 доларів на LaunchControl . Це чудове додаток. Реєстраційного коду немає, тому вам не доведеться платити за нього, але ви повинні, тому що розробник довіряє вам, якщо ви використовуєте додаток.