php - the - reiniciar httpd
¿Cómo reinicio programáticamente un servicio del sistema(no apache) desde apache en Linux? (2)
Yo usaría una secuencia de comandos CGI. Configúralo para que se ejecute como root y llama a ''/etc/init.d/tomcat restart'' (o como reinicies tomcat en tu caja).
Necesito una manera simple de permitir que un usuario final reinicie tomcat desde una página web servida desde apache en el mismo cuadro.
Estamos tratando de facilitar que nuestro departamento de control de calidad implemente una nueva versión de nuestra aplicación web para apache. Estamos usando samba, pero necesitamos una manera fácil para detener / iniciar el servidor Tomcat antes / después de la implementación.
Esto solo sería para cuadros internos de qc. ¿Hay una solución existente para esto? o sería más fácil escribir algunas aplicaciones rápidas de PHP para manejar esto?
Como dijo Skip, pero no ejecutes el CGI como root. En cambio, haga que el CGI llame a sudo. Puede otorgar permiso a su servidor web para ejecutar /etc/init.d/tomcat restart
solo en el archivo sudoers.
De hecho, he hecho esto en el trabajo; la parte relevante del CGI se ve así:
#!/usr/bin/perl
use CGI;
use IPC::Run3;
my $CGI = new CGI;
my $output;
if (defined $CGI->param(''go'') && ''restart'' eq $CGI->param(''go'')) {
run3 [ qw(sudo /etc/init.d/tomcat5.5 restart) ], /undef, /$output, /$output;
}
print <<EOF
Content-type: text/html
Blah, blah, blah, HTML form, displays $output at some point.
EOF
Aquí hay una línea de ejemplo de / etc / sudoers (use visudo para editar, por supuesto):
ALL ALL=(root) NOPASSWD: /etc/init.d/tomcat5.5 restart
Eso les permite a todos reiniciar Tomcat. Puede limitarlo a Apache solo si lo desea.