Как установить Гудзон в качестве услуги на OS X?

StackOverflow https://stackoverflow.com/questions/3715606

  •  02-10-2019
  •  | 
  •  

Вопрос

Бег Гудзон Это легко, но в настоящее время в документации отсутствует учебное пособие по установке бегущего Гудзона в качестве демона/сервиса на OS X.

Когда вы переходите на производство, вам необходимо обеспечить, чтобы она была должным образом настроена и защищена.

Требования:

  • иметь возможность запустить его на порту 80
  • не работает как root (или, по крайней мере, не выполнять задания как корень)
  • Убедитесь, что он правильно запускается/останавливается при перезапусках системы
  • Включите автоматическое обновление, которое работает непосредственно из веб-интерфейса.

Лучше всего иметь сценарий установки, который загружает последний Гудзон и устанавливает его.

Мы интегрируем лучший ответ на Hudson Wiki.

Ресурсы:

Это было полезно?

Решение 2

Правильное решение состоит в том, чтобы установить Гудзон в Tomcat и заставить Tomcat работать как Daemon

Это также будет соответствовать требованиям безопасности и позволит вам легко обновить Гудзон.

Вот полное руководство для OS X 10.6:https://serverfault.com/questions/183496/full-guide-for-nstalling-tomcat-on-os-x/183527#183527

Другие советы

Если вы хотите, чтобы местный Гудзон работал на вашем Mac всякий раз, когда вы входите в систему, попробуйте это.

Вы захотите настроить для него PANKETCTL 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>UserName</key>
 <string>yourid</string>
 <key>Label</key>
 <string>Hudson</string>
 <key>EnvironmentVariables</key>
   <dict>
     <key>HUDSON_HOME</key>
     <string>/Users/yourid/.hudson</string>
   </dict>
 <key>ProgramArguments</key>
 <array>
 <string>/usr/bin/java</string>
 <string>-jar</string>
 <string>/Users/yourid/Hudson/hudson.war</string>
 </array>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>

Это предполагает, что вы скачали hudson.war к вашему домашнему справочнику под ~/Hudson, и что вы хотите запустить его как самого себя (вероятно, лучшие решения.) Будьте уверены, что определили <UserName> Ключ или он будет работать как корень!

Начиная с входа в систему

  1. Сохраните выше /Library/LaunchAgents/hudson.plist
  2. Начать с первого раза с

    Sudo LaunchCtl Load -W /Library/launchagents/hudson.plist

Или выходите из входа и обратно, что сделает то же самое автоматически.

Начиная с перезагрузки

  1. Сохраните выше /Library/LaunchDaemons/hudson.plist
  2. Начать с первого раза с

    Sudo LaunchCtl Load -W /Library/launchdaemons/hudson.plist

Или перезагрузите машину, которая сделает то же самое автоматически.

Перезапустив Гудзон

Хадсон не может автоматически перезапустить под OS X, поэтому, если вам нужно остановить его, выпустите команду перезапуска

launchctl unload -w path_to_plist

Я обнаружил, что иногда это не останавливается на первом исполнении launchctl unload; В этих случаях просто выпустите команду снова.

Это будет работать под портом 8080, как будто вы сами запустили команду из командной строки, используя встроенный сервер Winstone в .war файл.

Я понимаю, что это конкретно не отвечает на вопрос «запустить его на порту 80», но для разработки на вашем собственном ноутбуке я полагаю, что это лучший вариант.

Крошечное решение, которое у меня было (которое также начинается с входа в систему), было следующее: сначала запустите Hudson вручную один раз (так что он строит его. Hudson Dir). создать Hudson.command Задайте где -нибудь на вашем компьютере в OSX с контентом, немного похоже на это:

nohup java -jar .hudson/hudson.war --httpPort=8080 &

Затем откройте системные настройки, выберите пользователя, а затем войдите в систему. Нажмите кнопку «+», и вы сможете выбрать команду с Finder.

В следующий раз, когда вы войдете в систему, Хадсон начнет.

Недостатки:

  • У Хадсона нет конкретного пользователя - это только вы
  • Хадсон находится на порту 8080
  • Перезагрузки Хадсона означают поиск процесса, убив его и снова запустить файл Hudson.command.
  • Хадсон начинает только после того, как пользователь вошел в систему.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top