Comandos Systemctl para administrar el servicio Systemd

Systemctl es una utilidad utilizada por systemd para administrar el sistema y el administrador de servicios. Muchas distribuciones modernas de Linux como Ubuntu, Debian, Fedora, Linux Mint, OpenSuSE, Redhat han adoptado systemd como su sistema de inicio predeterminado.
Con systemctl puede iniciar, detener, recargar, reiniciar el servicio, enumerar unidades, verificar el estado del servicio, habilitar / deshabilitar el servicio, administrar objetivos (niveles de ejecución) y administración de energía.
En este tutorial, le mostraré cómo usar los comandos systemctl para administrar el servicio systemd en Linux.
1. Servicio de inicio / parada / reinicio / recarga de Systemctl
Para iniciar un servicio en Linux, ejecute systemctl seguido del nombre del servicio espacial ‘start’.
Ejemplo:
systemctl start dnsmasq
A diferencia del comando de servicio, el comando systemctl start no da ningún resultado.

Para detener un servicio, use systemctl stop service-name. Por ejemplo:
systemctl stop dnsmasq

Para reiniciar un servicio, use systemctl restart service-name.
Ejemplo:
systemctl restart dnsmasq

Para recargar la configuración del servicio (digamos ssh), sin reiniciarlo, use systemctl reload service-name.
Por ejemplo:
systemctl reload sshd

2. Systemctl comprobar el estado del servicio
Para ver si un servicio se está ejecutando o no, podemos usar la verificación de estado systemctl.
systemctl status dnsmasq

3. Verifique y habilite / deshabilite el servicio en el arranque
Para habilitar un servicio en el arranque (esto corresponde a ‘chkconfig on’ en el sistema sysvinit), use systemctl enable service-name.
Ejemplo:
systemctl enable dnsmasq.service
Del mismo modo, los servicios se pueden deshabilitar en el arranque, ejecute:
systemctl disable dnsmasq.service

Para verificar si un servicio está habilitado en el arranque o no, ejecute:
systemctl is-enabled dnsmasq.service

4. Unidades de lista Systemctl
Para enumerar todas las unidades en ejecución, ejecute el comando systemctl sin ninguna opción. La opción de lista de unidades también hace lo mismo.
systemctl
o
systemctl list-units

Las unidades fallidas se pueden enumerar con la opción –failed.
systemctl --failed

Para enumerar todos los servicios activos, ejecute:
systemctl list-units -t service

6. Comandos de reinicio / apagado de Systemctl
Como el comando de apagado, el comando systemctl para apagar, reiniciar o hibernar el sistema.
El siguiente comando apagará el sistema y apagará la máquina y enviará una notificación a todos los usuarios que hayan iniciado sesión.
systemctl poweroff
El siguiente comando apagará el sistema pero no apagará la máquina. Esto enviará una notificación a todos los usuarios que hayan iniciado sesión.
systemctl halt
Apague la máquina, pero no enviará ninguna notificación a todos los usuarios que hayan iniciado sesión.
systemctl --no-wall poweroff
Para mostrar los detalles del cierre, ejecute el siguiente comando.
journalctl -u systemd-shutdownd
7. Systemclt para administrar sistemas remotos
Por lo general, todos los comandos systemctl anteriores se pueden usar para administrar un host remoto con el comando systemctl en sí. Esto usará ssh para comunicarse con el host remoto. Todo lo que necesita hacer es agregar el usuario y el host al comando systemctl como este:
systemctl status sshd -H root@1.2.3.4
8. Gestión de objetivos
Systemd tiene un concepto de objetivos que tienen un propósito similar a los niveles de ejecución en el sistema sysVinit.
Los niveles de ejecución en sysVinit eran en su mayoría numéricos (0,1,2, …). Aquí están los niveles de ejecución en sysVinit con sus contrapartes systemd:
0 runlevel0.target, poweroff.target 1, s, single runlevel1.target, rescue.target 2, 4 runlevel2.target, runlevel4.target, multi-user.target 3 runlevel3.target, multi-user.target 5 runlevel5.target, graphical.target 6 runlevel6.target, reboot.target emergency emergency.target
Para cambiar el objetivo actual, escriba:
systemctl isolate graphical.target

Si desea ver en qué objetivo se encuentra, debe enumerar todas las unidades correspondientes.
systemctl list-units --type=target

Puede ver «graphical.target» enumerado aquí. Esto es lo que cambiamos nuestro objetivo. Ahora cambiemos el nivel de ejecución nuevamente a multi-user.target y luego analicemos esta salida:
systemctl isolate multi-user.target systemctl list-units --type=target

Para enumerar el objetivo predeterminado, escriba:
systemctl get-default

El objetivo predeterminado se puede establecer con el comando set-default, escriba:
systemctl set-default graphical.target

Otro comando systemd útil
Iniciar sesión en systemd
El systemd tiene su propio sistema de registro llamado journald. Reemplaza el demonio syslog de sysVinit.
journalctl

Para ver todos los mensajes de arranque, ejecute el comando «journalctl -b».
journalctl -b

El siguiente comando sigue los registros del sistema en tiempo real (similar a tail -f).
journalctl -f

Para verificar registros específicos de un servicio o ejecutable en particular, use journalctl como:
journalctl /usr/sbin/dnsmasq

Encuentra la duración del proceso de arranque
Para encontrar la duración del proceso de arranque de systemd con el siguiente comando:
systemd-analyze

El tiempo de análisis de systemd también muestra la misma información.
systemd-analyze time

Para imprimir una lista de todas las unidades en ejecución ordenadas por el tiempo necesario para inicializar, use systemd-analyse blame.
systemd-analyze blame

Comando hostnamectl
Para mostrar y cambiar el nombre de host, use el comando hostnamectl.
hostnamectl

Conclusión
En este tutorial, aprendimos los comandos systemctl para administrar el servicio systemd en distribuciones de Linux. Espero que haya disfrutado de la lectura y deje sus sugerencias en la sección de comentarios a continuación.
Leer también: