Запустити nrpe при завантаженні без входу користувача


2

Запуск Mac mini з серверним додатком. (El Capitan 10.11.4 та Server.app 5.1)

Встановлено Xcode, варити та nrpe за допомогою brew. Добре працює як такий. Немає сенсу віддалений робочий стіл до нього та увійти в систему, щоб розпочати моніторинг. Зважаючи на те, що FileVault активний, вхід автоматично не є можливим.

Як зробити запуск nrpe, якщо машина перезавантажується без взаємодії?

EDIT1: Гаразд, не вдалося знайти простий спосіб зробити цю роботу; тож я вимкнув файлове повідомлення після короткої дискусії з командою. Але під час завантаження (і з автоматичним входом) nrpe все ще не запускається автоматично ...


Ви шукаєте допомоги, використовуючи такий інструмент, як LaunchCenter, щоб скласти список, щоб запустити роботу, або просто інструкції, щоб встановити файл сценарію для запуску як елемент запуску та мати користувач увійти в Mac під час завантаження, а потім заблокувати екран?
bmike

Привіт @bmike, nrpe встановлює список, тому це лише запуск. Оскільки у вікні є брелок FileVault, автоматизовані входи неможливі.
Тінь

Ааа. Тож вам потрібно змінити сценарій запуску, щоб прочитати пароль із securityдвійкового файлу та зберігати там речі чи іншим чином автоматизувати речі expect?
bmike

Хе @bmike; Я не знаю, що мені потрібно знати про MacOS / X. У службі Linux land (мій дім;}) служби (демони) працюють чудово, якщо хто-небудь, хто повинен увійти в систему або почати роботу за допомогою пароля. Здається, це можливо і в MacOS / X, наприклад, наприклад, бачачи, як я можу відповідати річчю без попередньої взаємодії людини після перезавантаження.
тинк

Відповіді:


1

Посилаючись на http://launchd.info :

  1. ~ / Бібліотека / LaunchAgents та / Library / LaunchAgents використовуються для користувача, який наразі увійшов у систему.
  2. / Бібліотека / 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 . Це чудове додаток. Реєстраційного коду немає, тому вам не доведеться платити за нього, але ви повинні, тому що розробник довіряє вам, якщо ви використовуєте додаток.


дуже тобі дякую; Я робив перехід і посилання до цієї публікації, але автозапуск продовжував виходити з ладу під час завантаження. З модифікованим плістом все гарно-дорі. :}
тинк

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