2012-03-04 19 views
8

Cuando corro este comandoAmazon EC2 - tema reiniciar el servidor Apache

sudo /etc/init.d/httpd reiniciar

se da a continuación error

detener httpd: [Error ]

Inicio de httpd: (98) Dirección ya en uso: make_sock: no se pudo enlazar a la dirección [::]: 80 (98) Dirección ya en uso: make_sock: cou LD NOT unirse para hacer frente a 0.0.0.0:80 no hay socket de escucha disponibles, el cierre de No es posible abrir los registros [Error]


he comprobado programas en el puerto 80 en ejecución mediante

-lnp -an | grep: 80 (se da debajo de la salida)

tcp 0 0 ::: 80 ::: * LISTEN 21739/httpd


Por qué no soy capaz de dejar de dejar de Apache mediante el uso de sudo/etc/init.d/httpd restart?

a continuación comandos funcionan sin ningún problema

sudo apachectl detener

sudo apachectl start

estoy usando Linux micro instancia de Amazon EC2

Respuesta

0

me siento que es mejor para matar el proceso en sí, averiguar el ID del proceso y matarlo y luego hacer un nuevo comienzo, debería funcionar bien

14

Me encontré con este problema Lem cuando instala Apache desde el código fuente, pero luego trató de correr

$ sudo /etc/init.d/httpd restart 

que se utiliza una versión pre-instalada de Apache. La directiva stop en /etc/init.d/httpd no eliminaba el archivo httpd.pid que se creó al iniciar la versión de apache instalada en el origen.

para determinar si esta es también la razón de su problema, encontrar donde el archivo httpd.pid se está configurado cuando se ejecuta

$ sudo apachectl start 

Si ha instalado desde la fuente y apache2 está viviendo en/usr/local/apache2, luego el archivo httpd.pid debería crearse en/usr/local/apache2/logs. Cuando detenga apache ejecutando

$ sudo apachectl stop 

este archivo debería eliminarse. Así que para probar si el archivo httpd.pid está causando el problema, iniciar Apache llamando

$ sudo apachectl start 

y localice el archivo httpd.pid.A continuación, intente detener Apache mediante el uso de

$ sudo /etc/init.d/httpd stop 

Si el archivo httpd.pid original todavía está presente, entonces es por eso que Apache no puede iniciar cuando se utiliza

$ sudo /etc/init.d/httpd start 

Para obtener mi/etc/init .d/httpd archivo funcione correctamente, me puso de forma explícita la llamada a apachectl en el arranque y parada métodos:

#!/bin/bash 
# /etc/init.d/httpd 
# 
# Path to the apachectl script, server binary, and short-form for messages. 
apachectl=/usr/local/apache2/bin/apachectl 
httpd=/usr/local/apache2/bin/httpd 
pid=/usr/local/apache2/logs/httpd.pid 
prog=httpd 
RETVAL=0 

start() { 
    echo -n $"Starting $prog: " 
    $apachectl -k start 
    RETVAL=$? 
    echo 
    return $RETVAL 
} 
stop() { 
    echo -n $"Stopping $prog: " 
    $apachectl -k stop 
    RETVAL=$? 
    echo 
} 
0

he probado esto y funciona:

  1. sudo -k fusor -n tcp 80
  2. sudo service httpd empezar

Hope esto le ayudará!

Cheers