1

Я установил Apache, используя MacPorts. Это происходит сбой время от времени, и мне нужно вручную перезапустить его.

Есть ли способ заставить Apache автоматически перезагружаться, если он по какой-то причине умирает? Возможно, используя launchd как-то?

1 ответ1

1

Используйте launchd для запуска Apache и заставьте Apache работать на переднем плане, чтобы launchd мог отслеживать его и перезапускать в случае сбоя. Поскольку система включает элемент launchd (/System/Library/LaunchDaemons/org.apache.httpd.plist) для запуска встроенной версии Apache, я просто скопирую это в /Library/LaunchDaemons , изменим имя файла и метку поэтому launchd не запутает их, удалит ключ Disabled и изменит ProgramArguments чтобы они указывали на версию Apache для MacPorts. Обязательно сохраните аргументы -D и FOREGROUND в httpd , иначе он демонизирует себя, а launchd запустит другой экземпляр, и ничего полезного не будет сделано.

(И следуйте советам @ RedGrittyBrick по поиску истинной причины аварии. Хотя launchd - это "правильный" способ запуска демона, такого как Apache, в Mac OS X, это всего лишь бинты для решения любой проблемы, с которой сталкивается Apache.)

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