Я бы хотел запустить Ископаемое SCM как услуга, которая вызывается при необходимости на моем Mac Mini Server. Как мне это настроить?
Получение установки Fossil SCM в качестве сервера в Mac OS X.
Это работает на 10.7, но должно работать до 10.4 AFAIK.
Предпосылки:
Шаги:
откройте Терминал и введите следующее:
sudo launchctl unload /Library/LaunchDaemons/org.fossil-scm.service.plist
откройте свой браузер, чтобы http: // локальный: 8081 / reponame (Я использовал "проекты" имя моего основного репозитория в качестве репозитория по умолчанию)
Для получения дополнительной информации см. Создание демонов и агентов запуска.
Некоторое объяснение того, что происходит:
В / Library / LaunchDaemons / хранятся файлы .plist, определяющие «Демоны пользователей», которые запускаются при запуске системы. Некоторые другие полезные места: ~ / Library / LaunchAgents для каждого пользователя и / Library / LaunchAgents для всех пользователей.
KeepAlive Не перезапускать службу; этот способ использования fossil работает, запустив его в ответ на запрос через порт 8081.
Ярлык org.fossil-scm.service называет службу, поэтому ее можно запустить sudo launchctl load и остановить с помощью sudo launchctl load
ProgramArguments / Users / spdegabrielle / bin / fossil http --localauth --notfound projects / Users / spdegabrielle / fossil-repository - это запущенный способ сказать fossil http --localauth --notfound projects / Users / spdegabrielle / fossil-repository
Смысл аргументов следующий:
fossil http действие запрос, исходящий из порта 8081 (в данном случае), предоставить ответ и выйти. (см. справку по ископаемым http)
--localauth автоматический вход, если вы получаете доступ к ископаемому со своего сервера напрямую с помощью http://127.0.0.1:8081/ или http: // локальный: 8081 / (см. справку по ископаемым http)
--notfound projects устанавливает репозиторий по умолчанию при указании местоположения репозитория как папки (следующий), а не как конкретный репозиторий
/ Users / spdegabrielle / fossil-repository - это расположение хранилища (--notfound projects устанавливает значение по умолчанию)
RunAtLoad - не запускайте его при загрузке - он будет запускаться по запросу
inetdCompatibility приводит к тому, что launchd будет вести себя как inetd для запущенной программы