Я устанавливаю приложение под названием Jenkins на Mac, которое является инструментом для сборки.

Есть много ОЧЕНЬ полезных статей на эту тему, и все они включают изменение plist, чтобы указать на вновь созданного пользователя.

Они ВСЕ говорят, чтобы начать / прекратить использовать sudo

 sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
 sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist

и все они говорят, чтобы создать нового пользователя для этой цели (как насчет существующего пользователя?)

sudo dscl . create /Users/jenkins
sudo dscl . create /Users/jenkins PrimaryGroupID 1
sudo dscl . create /Users/jenkins UniqueID 300
sudo dscl . create /Users/jenkins UserShell /bin/bash
sudo dscl . create /Users/jenkins home /Users/Shared/Jenkins/Home/
sudo dscl . create /Users/jenkins NFSHomeDirectory /Users/Shared/Jenkins/Home/
sudo dscl . passwd /Users/jenkins

Теперь я новичок в Mac. И это НИЧЕГО не говорит мне о:

  1. как автоматически запустить приложение / службу / демон при перезагрузке компьютера.
  2. Как это дает пользователю jenkins необходимые разрешения?
  3. Также мне нужно было войти в систему с одним пользователем, чтобы изменить plist, а затем снова с другим пользователем и т. д.
  4. Я даже не вижу этого недавно созданного пользователя в / Users / jenkins, хотя каждая строка выполняется нормально. Я не вижу / Пользователи / Дженкинс.
  5. Как запуск машины и вход в систему под учетной записью администратора приведут к запуску этого пользователя jenkins и демона? Я просто не понимаю? Нужно ли добавить sudo в какой-нибудь скрипт запуска в админке.

Я имею в виду, что на самом деле это то, о чем я думаю, все думают, когда думают о запуске процесса демона. Не выполняется постоянно sudo this и sudo that.

Я совсем не думаю, что произойдет, если я загрузлю машину и войду в систему под именем пользователя jenkins. Как заставить сервер jenkins работать независимо от того, какой пользователь фактически вошел в систему?

Примечание: я выполнил все из учетной записи администратора. Не root.

Поэтому мне нужна полная информация о том, как это сделать.

Я имею в виду, какой смысл демону, если мне нужно загружать sudo при каждом запуске машины?

Теперь моя точная ситуация такова, что у меня уже есть пользователь-администратор jenkinsadmin, который я хочу использовать для мониторинга машины и т.д. Создание этого нового пользователя, как указано выше, вообще не давало мне права администратора. На самом деле выполнение sudo было невозможно. Итак, как мне автоматически запускать этот jenkins при каждой загрузке машины и входе в систему с помощью jenkinsadmin?

1 ответ1

0

Вы должны сказать Mac, что Jenkins должен быть запущен сразу после перезагрузки. Это делается с помощью так называемых LaunchDaemons. Для получения дополнительной информации о LaunchDaemons и LaunchAgents обратитесь к странице «Демоны и службы» Ресурсов для разработчиков приложений Apple.

В основном специальный файл, который находится в /Library/LaunchDaemons заставляет Mac запускать определенную программу. Если файл содержит <key>RunAtLoad</key><true/> приложение запустится при загрузке системы, и вам не нужно будет запускать процесс вручную.

Вам не нужен пользователь с правами администратора. Просто установите пользователя как пользователя для процесса в вашем LauchDaemon-config-файле. Когда система затем запускает процесс, она запускает процесс от имени данного пользователя. И даже если вы запустите процесс вручную, запустив sudo launchctl процесс в конечном итоге запустится от имени вашего пользователя jenkinsadmin -User .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .