Используйте 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.)