MiniScript service
Aquí tengo un pequeño scrip (sí, en perl) para ahorrarse escribir todo el /etc/init.d/nombreservicio cuando queremos iniciar o apagar un servicio del sistema. Así, para , por ejemplo, parar el servidor apache, no tendremos que hacer /etc/init.d/apache2 stop, sino que haremos service apache2 stop.
Como se ve en el código, siemplemente el primer parámetro se concatena a la ruta y el segundo pasa al script del init.d directamente, siempre que no sea –status-all, que es la opción que en el service original de red hat muestra el estado de todos los servicios del sistema.
En éste script no está puesto porque hace que se cuelgue algún servicio no determinado.
[perl]
#!/usr/bin/perl -w
#
# Wrapper para usar las funciones de /etc/init.d/ con la sintáxis de red hat
# Ruymán Reyes Castro versión 1.0
#
# Ejemplo
# start: service tutu start
# stop : service tutu stop
# restart: service tutu restart
use strict;
my $name = $ARGV[0] or die (“Parámetros insuficientes\n”);
# Cambiarlo por algo más decente!!
if ( $name =~ “–status-all” ) {
# Listamos los servicios disponibles
# No implementado! Cuelga cuando llama
# al status de algunos servicios
} else {
my $line = “/etc/init.d/$name”;
# Obtenemos la acción o ejecutamos la línea
my $action = $ARGV[1] or exec $line;
# Comprueba si eres superusuario
($ENV{“USER”} eq “root”) or die(‘Debes ser superusuario!’);
# Comprobamos si el servicio existe
my @services = glob(“/etc/init.d/*”);
(grep m/$name/, @services) or die (‘El servicio no se encuentra!’);
# Creamos la línea de acción
my @line = (“$line $action”);
# y la ejecutamos
exec @line;
}
[/perl]

