stop start instalar httpd apachectl ssh ubuntu-10.04 python-2.6 fabric apache2.2

ssh - instalar - restart apache windows



la tela parece iniciar apache2 pero no (6)

¿Qué versión de tela estás ejecutando?

¿Has intentado cambiar el argumento pty (intenta cambiar el shell también, pero no debería influir en las cosas)?

http://docs.fabfile.org/en/1.0.1/api/core/operations.html#fabric.operations.run

Puede establecer el argumento pty esta manera:

sudo(''service apache2 restart'', pty=False)

Estoy usando Fabric para iniciar remotamente un servidor micro aws, instalar git y un repositorio git, ajustar la configuración de Apache y luego reiniciar el servidor.

Si en algún momento, desde el archivo fab, emite

sudo(''service apache2 restart'') o run(''sudo service apache2 restart'') o una parada y luego un inicio, aparentemente el comando se ejecuta, obtengo la respuesta que indica que apache ha comenzado, por ejemplo

[ec2-184-73-1-113.compute-1.amazonaws.com] sudo: service apache2 start [ec2-184-73-1-113.compute-1.amazonaws.com] out: * Starting web server apache2 [ec2-184-73-1-113.compute-1.amazonaws.com] out: ...done. [ec2-184-73-1-113.compute-1.amazonaws.com] out:

Sin embargo, si intento conectarme, la conexión se rechaza y si entro al servidor y ejecuto el estado de sudo service apache2 status , dice que " Apache is NOT running ".

Mientras está sshed in, si ejecuta sudo service apache start , el servidor se inicia y puedo conectarme. Alguien más ha experimentado esto? ¿O alguien tiene alguna sugerencia sobre dónde podría mirar, en los archivos de registro, etc. para resolver lo que sucedió? No hay nada en apache2/error.log , syslog o auth.log .

No es un gran problema, puedo solucionarlo. Simplemente no me gustan esos fracasos silenciosos.


Cuando se conecta a sus controles remotos en nombre de un usuario al que se le otorgan suficientes privilegios (como root), puede administrar los servicios del sistema como se muestra a continuación:

from fabtools import service service.restart(''apache2'')

https://fabtools.readthedocs.org/en/0.13.0/api/service.html

PS Requiere la instalación de fabtools

pip install fabtools


Esta es una instancia de este problema y hay una entrada en las preguntas frecuentes que tiene la mejor respuesta. Lamentablemente, en CentOS 6 no es compatible con los comandos sudo sin menoscabo y no me gustó la solución nohup ya que eliminó la salida.

La entrada final en el número menciona el uso de sudo(''set -m; service servicename start'') . Esto activa el Control de trabajos y, por lo tanto, los procesos en segundo plano se ponen en su propio grupo de procesos. Como resultado, no terminan cuando termina el comando.


Prueba esto:

sudo(''service apache2 restart'',pty=False)

Esto funcionó para mí después de encontrarse con el mismo problema . No estoy seguro de por qué sucede esto.


Un par de formas más de solucionar el problema.

  • Podría ejecutar el objetivo fab con la opción --no-pty

    fab --no-pty <task>

  • Dentro de fabfile, establezca la variable de entorno global always_use_pty en False, antes de que se ejecute el código de destino

    env.always_use_pty = False


usar pty = False todavía no me lo resolvió. La solución que terminó trabajando para mí es hacer un doble nohup, así:

run.sh

#! /usr/bin/env bash nohup java -jar myapp.jar 2>&1 &

fabfile.py

... sudo("nohup ./run.sh &> nohup.out", user=env.user, warn_only=True) ...