with the servidor reiniciar job iniciar httpd for failed exited error directorio control configurar code because php linux apache cgi restart

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.