Use launchd para iniciar o Apache e execute o Apache em primeiro plano, para que launchd possa monitorá-lo e reiniciá-lo se ele falhar. Como o sistema inclui um launchd item ( /System/Library/LaunchDaemons/org.apache.httpd.plist ) para iniciar a versão interna do Apache, eu copiaria isso para /Library/LaunchDaemons , altere o nome do arquivo e Label para que launchd não os confunda , remova a chave Desativada e altere ProgramArguments para apontar para a versão MacPorts do Apache. Lembre-se de manter os argumentos -D e FOREGROUND em httpd , ou ele próprio se daemonizará e launchd iniciará outra instância e nada útil será feito.
(E siga o conselho do @RedGrittyBrick sobre encontrar a causa real da falha. Embora launchd seja a maneira "certa" de iniciar um daemon como o Apache no Mac OS X, é apenas um band-aid para qualquer problema do Apache está tendo.)