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)
...