IES Miguel Romero Esteo - Departamento de
Informática - Linux/Unix
Secuencia de inicio –
Nivel de ejecución - Gestión de servicios –
Gestión de procesos
/ Taller 1
Comandos:
Aplicaciones:
Documentación
extra:
Enunciado:
Después de comprender la diferencia entre
programa lineal y programa residente, la diferencia entre
programa "Ad hoc" y programa servidor; entendido lo que es
systemd, para lo
que sirve, y haber sobrevolado documentalmente sobre los
comandos que gestionan su acción, es el momento de crear un
servicio, es decir, queremos que un programa que hace algo
arranque automáticamente cada vez que se inicie el sistema y que
podamos interactuar con él con las herramientas que systemd nos proporciona para gestionar
servicios (pararlo, pausarlo, reiniciarlo, verificar su estado,
etc...)
El algoritmo que forma el núcleo de nuestro servicio estará codificado en un shell script de
nombre numera
que estará
alojado en /usr/sbin. El objeto de
nuestro servicio es generar
10.000 números
aleatorios y
grabarlos uno
detrás de otro en un
fichero de texto de
nombre /var/tmp/numera.list.
#!/bin/bash
# Name: numera
# Main del servicio numera
rm -fr /var/tmp/numera.list;
for (( i=1 ; i<10000; i++ ));do
echo $RANDOM >>
/var/tmp/numera.list;
sleep 1;
done;
exit;
En el documento cómo
crear un servicio con systemd
se explican los pasos a seguir para hacer lo que
pretendemos de una forma muy amigable y
en español. En el apartado EXAMPLES
de la página de manual systemd.service
hay varios ejemplos de creación de
unidades de tipo service que
amplía mucho lo descrito en el documento
anterior.
A
continuación se indican las
especificaciones obligatorias del
servicio, lo que no se contemple queda a
elección del alumno.
- El servicio se implantará
en la máquina virtual deb-aws.
- El
servicio recibirá el nombre de "numera".
-
El servicio debe
configurarse para que se reinicie automáticamente cuando
haya terminado o experimente alguna caída no controlada (systemctl
stop es una caída controlada).
- El usuario asociado al servicio es operador.
-
multi-user.target
es estado del sistema (target) a partir del cual este
servicio debe ponerse en marcha.