4.3 Servicios y Systemd
¡Prepárate!
- Entenderás el concepto de
Daemon(Demonio). - Sabrás utilizarsystemctlpara ver el estado, reiniciar y parar servicios como Apache o SSH. - Aprenderás la vital diferencia para la producción entrerestartyreload. - Aprenderás a enganchar servicios para que inicien automáticamente
(
enable).
Habrás notado que al encender Linux, la red funciona, el servidor SSH te deja entrar, y el servidor Web funciona. Pero tú no iniciaste esos programas a mano ejecutando aplicaciones.
Esos programas se llaman Demonios (Daemons, que suele abreviarse con una ‘d’ al final, como sshd o systemd). Son programas invisibles y sin interfaz que viven de fondo en la memoria RAM. Al capataz total de todos estos programas que decide quién nace, quién muere y quién reinicia se le llama Systemd.
Y a menos que instales Linux desde 0 en tu smartwatch, usarás su comando principal: systemctl.
1. El Control de Mando: systemctl
Sección titulada “1. El Control de Mando: systemctl"El comando Control de Systemd (systemctl) espera una orden y el nombre de una Unidad (generalmente finalizada en .service).
Usemos de ejemplo el servidor web de Debian (nginx o apache2).
Ver la Salud del Sistema (Status)
Sección titulada “Ver la Salud del Sistema (Status)"systemctl status nginxEsto te imprimirá un cuadro vital inestimable. De un solo vistazo verás:
- Si está en verde (active (running)) o rojo (failed).
- Si ha colapsado, imprimirá textualmente las 10 últimas líneas del fichero de error explicándote por qué.
Apagar y Encender (Start / Stop)
Sección titulada “Apagar y Encender (Start / Stop)"Para hacer la modificación en caliente de la memoria RAM.
sudo systemctl stop nginxsudo systemctl start nginxEl Arte de Reiniciar vs Recargar
Sección titulada “El Arte de Reiniciar vs Recargar"Si cambias un archivo de configuración de Nginx (por ejemplo, añades una página web nueva), el Demonio que reside en memoria RAM no se entera porque no está leyendo el archivo de texto a cada segundo. Debes forzar a que lo lea. Tienes dos enfoques:
-
La Ruleta Rusa (
restart):ventana terminal sudo systemctl restart nginxEsto mata instantáneamente el proceso, tira la conexión de todos los clientes bajándose descargas de tu web, y enciende un proceso nuevo. Es una animalada en Producción si no hay un error grave.
-
El Toque Cuidudoso (
reload):ventana terminal sudo systemctl reload nginxLe envía una señal elegante al Demonio: “Oye, cuando termines de atender a las descargas que tienes a medias, reléete el archivo de configuración a ver si ha habido cambios ”. Cero micro-cortes, máxima profesionalidad.
2. Inmortalizar un Servicio (Enable / Disable)
Sección titulada “2. Inmortalizar un Servicio (Enable / Disable)"Que tú des start a un servicio web ahora mismo, no asegura de ninguna manera que si el servidor sufre un corte eléctrico y reinicia, el servicio vaya a auto-arrancar.
Para enganchar profundamente un Demonio al ciclo de encendido de la Fase 5 del Sistema, y garantizar su ejecución automática tras reiniciar, debemos Habilitarlo:
# Enganchar el arranque automático ("Crear Symlink")sudo systemctl enable nginx
# Retirarlo del arranque automático (Eliminar Symlink)sudo systemctl disable nginx
# Si quieres que encienda AHORA MISMO y además engancharlo al futuro# (Truco LFCS con el modificador --now)sudo systemctl enable --now nginxComprueba tus conocimientos
Sección titulada “Comprueba tus conocimientos"-
Has editado el archivo
/etc/ssh/sshd_configtal y como aprendimos en la Clase 3 para desactivar los reseteos de contraseña. Actualmente hay otros 5 sysadmins de tu empresa conectados al servidor simultáneamente transfiriendo grandes configuraciones críticas y no quieres desconectarlos de golpe. ¿Cómo recomunidas al demonio SSH que acate tus cambios en la configuración reduciendo la fricción a cero? -
Acabas de instalar el gestor de bases de datos MariaDB (
apt install mariadb-server). Tu plan es migrar bases de datos todo este mes, pero aún no quieres que la base de datos se ponga a iniciarse automáticamente devorando 2GB de RAM cada vez que reinicias la máquina. ¿Cómo detienes el inicio automático desenganchando la orden de auto-reinicio? -
Te quejas de que tu pequeña web no carga. Ejecutas
systemctl status apache2y el CLI retorna texto diciendo:Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: enabled)yActive: inactive (dead). Analizando forensemente el mensaje, ¿Qué deducción sacamos?