Reiniciar Servicios systemctlReiniciar servicios con systemctl "systemd" es facil

Reiniciar Servicios en Ubuntu Linux Terminal systemctl/systemd

Reiniciar servicios con systemctl «systemd» es facil, pero antes me gustaria aclarar algo que a menudo se suele confundir:

No, systemd y systemctl no son lo mismo, aunque están estrechamente relacionados.

  • systemd: Es un sistema de init y gestor de servicios para sistemas operativos Linux. Es responsable de arrancar y gestionar el sistema y los servicios en él. Además de iniciar los servicios, systemd gestiona dependencias entre servicios, maneja tareas de mantenimiento, y ofrece funcionalidades adicionales como el registro de eventos (logging) y la gestión de dispositivos (device management).
  • systemctl: Es una herramienta de línea de comandos utilizada para interactuar con systemd. Permite a los administradores de sistemas controlar y supervisar el estado de los servicios y las unidades en el sistema. Con systemctl, se pueden iniciar, detener, reiniciar servicios, habilitar o deshabilitar servicios para que se inicien automáticamente al arrancar el sistema, y realizar muchas otras tareas relacionadas con la gestión de servicios.

Aclarado este punto, hablemos de lo versatil que puede llegar a ser systemctl

Con systemctl podemos interactuar con cualquier servicio que estemos ejecutando, ejemplo: apache2, mysql, fail2ban, snort, etc….

En este ejemplo, explondre todo orientado a apache2.service, pero bien podria ser mysql.service, ssh.service sshd.service etc…

Iniciar un servicio

sudo systemctl start apache2.service

Reiniciar Servicios systemctl

sudo systemctl restart apache2.service

Detener un servicio

sudo systemctl stop apache2.service

Ver el estado un servicio systemctl

sudo systemctl status apache2.service

Añadir un servicio al inicio del sistema

sudo systemctl enable apache2.service

Quitar un servicio al inicio del sistema

sudo systemctl disable apache2.service

Espero que te sea tan util como me ha sido a mi.

Comentar… que me ha sido muy util usar systemctl status sobre servicios con | grep, y asi averiguar si los servicios estan activos
Os dejo el codigo por aqui, por si a alguien le es de ayuda o da «ideas» que siempre aportan

#!/bin/bash

# Verificar el estado de Apache
if sudo systemctl status apache2.service --no-pager | grep -q "Active: active (running)"; then
    apache_active=true
else
    apache_active=false
fi

# Verificar el estado de MySQL
if sudo systemctl status mysql.service --no-pager | grep -q "Active: active (running)"; then
    mysql_active=true
else
    mysql_active=false
fi

# Verificar el estado de Fail2Ban
if sudo systemctl status fail2ban.service --no-pager | grep -q "Active: active (running)"; then
    fail2ban_active=true
else
    fail2ban_active=false
fi

# Verificar el estado de sshd
if sudo systemctl status sshd.service --no-pager | grep -q "Active: active (running)"; then
    sshd_active=true
else
    sshd_active=false
fi

echo "SSH está activo: $sshd_active"
echo "Apache está activo: $apache_active"
echo "MySQL está activo: $mysql_active"
echo "Fail2Ban está activo: $fail2ban_active"

En este script compruebo que todos los servidores estan ok, y funcionando a la vez. puedes guardarlo en tu carpeta de binarios y darle permisos de ejecucion, asi podras ejecutarlo sin mas (como root, claro)

## Mueves tu archivo de script.sh a la carpeta de binarios cambiando el nombre por el comando que tu quieras, en este caso "miComando"
sudo mv script.sh /usr/local/bin/miComando
## Das permisos de ejecucion al archivo "miComando"
sudo chmod a+x /usr/local/bin/miComando
## Ahora puedes ejecutar "miComando" desde donde quieras
sudo miComando
SSH está activo: true
Apache está activo: true
MySQL está activo: true
Fail2Ban está activo: true

Si te ha gustado dale like y compartelo, me ayuda y motiva a seguir subiendo cositas y tips 😀

Deja un comentario

Descubre más desde Ovejeando

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo