¿Diferentes formas de reiniciar Apache?

11

Tengo una pregunta de Apache aquí.

Durante toda mi carrera como desarrollador, he reiniciado Apache de esta manera:

sudo /etc/init.d/apache2 restart

Hoy acabo de implementar mi primera aplicación Rails, pero tenía problemas para que Apache se reiniciara en la máquina host. Cuando lo intenté de esa manera, Apache intentaba reiniciarse, pero finalmente se bloqueaba.

Esto, sin embargo, funcionó bien:

sudo apachectl restart

¿Cuáles son las diferencias entre estas dos técnicas? Supuse que el último era, en el mejor de los casos, "azúcar sintáctico" para el primero, pero ese no debe ser el caso, dado que el último funcionó mientras que el primero no.

Si es relevante (y sospecho que puede serlo), esta aplicación Rails usa Phusion Passenger. Mi experiencia previa en desarrollo (mediante la cual el método anterior funciona bien) es principalmente con PHP. Soy bastante nuevo en Rails.

El servidor en cuestión es Ubuntu 11.04 (Natty).

Chris Allen Lane
fuente
1
Otra alternativa es el reinicio del servicio apache2, aunque no estoy seguro de cómo difiere de los 2 anteriores, si es que lo hace
Phil

Respuestas:

6
sudo /etc/init.d/apache2 restart

Este método utiliza los scripts de inicio de su distribución de Linux para reiniciar el proceso. Estas secuencias de comandos se ejecutan en el momento del arranque para iniciar apache.

sudo apachectl restart

Este método utiliza el programa de control apachectl . En casi todas las ocasiones recomendaría el uso de apachectl the para manipular el demonio apache. Usted tiene un control más detallado sobre cómo se reinicia el proceso (ver agraciado versus reinicio), las opciones de validación de configuración y una forma de obtener información de estado.

La principal diferencia entre usar los scripts de inicio para reiniciar apache y apachectl es que apachectl está específicamente diseñado para permitir a los administradores controlar apache, mientras que los scripts de inicio están diseñados como una forma generalizada para que Unixes inicie procesos después de que se hayan cargado el núcleo y el daeamon de init.

EDITAR: Desafortunadamente, no tengo idea de cómo abordar su problema con Rails o Phusion Passenger. Intenta buscar pistas en los registros de Apache .


fuente
2
Exactamente, ¿qué crees que hará tu sistema operativo cuando se reinicie y tu servicio apache2 start no funcione? Usar apachectl está bien para las pruebas y el trabajo de desarrollo, pero ejecutar servidores que causarán problemas. Pegarlo en rc.local tampoco es una solución.
kashani
Debo mencionar que solo estoy respondiendo la mitad de la pregunta: la diferencia entre los dos métodos para reiniciar Apache. Desafortunadamente, no sé todo acerca de Rails ... una especie de lectura rápida sobre eso en mi primer intento.
gracias por la ayuda. Eso aclaró las diferencias entre los dos para mí. Con respecto a las cosas de Rails, lo resolví antes de publicar aquí. Apachectl, de hecho, funcionó como un campeón, mientras que el método init.d no lo hizo. ¡Así que ahora lo sé! Gracias.
Chris Allen Lane,