systemctl: La herramienta de control de systemd

El comando systemctl es la herramienta de administración central para controlar el sistema de inicio systemd. Vamos a ver como administrar servicios, verificar estados, cambiar estados de sistema y trabajar con los archivos de configuración.

El objetivo de la mayoría de las acciones que llevaremos a cabo con systemd son "unidades", que como vimos en la entrada anterior, se clasifican por el tipo de recurso que representan y se definen con archivos conocidos como archivos de unidad.

Para las tareas de administración de servicios, la unidad de destino será la de tipo service, que tiene el archivo de unidad con el sufijo .service. De todas formas, para la mayoría de los comandos de administración de servicios es posible dejar de lado el sufijo .service, ya que systemd es lo suficientemente inteligente como para saber que probablemente trata de operar sobre un servicio cuando use los comandos de administración de servicios. En algunos casos, por ejemplo en el caso de trabajar con un servicio activado por un socket, donde la unidad de servicio y la de socket tienen el mismo nombre, tenemos que indicar que trabajamos sobre el socket añadiendo el .socket o de lo contrario operará siempre sobre el servicio.

Es necesario trabajar con privilegios de administrador, por tanto utilizaremos sudo con el comando systemctl en caso de no trabajar como root directamente.

Habilitar/Deshabilitar unidades Descripción
systemctl enable nombre.service Indica a systemd que inicie el servicio automáticamente en el arranque
systemctl disable nombre.service Deshabilita la unidad para el inicio automático durante el arranque del sistema
Comprobar estado Descripción
systemctl status nombre.service Muestra el estado del servicio, la jerarquía de cgroup y las primeras líneas de registro
systemctl is-active nombre.service Devuelve el estado de la unidad actual, que generalmente estará activa o inactiva. El código de salida será "0" si está activa y "1" en caso contrario. Esto facilita su uso en un script en suyo caso podemos añadir el parámetro --quiet para evitar que imprima también el estado de la unidad por la salida estándar
systemctl is-enabled nombre.service Indica si la unidad está habilitada o deshabilitada ("0" o "1")
systemctl is-failed nombre.service Indica si la unidad está en un estado fallido. Esto indica que hubo un problema al iniciar la unidad en cuestión
Parar/Arrancar/Restaurar/Recargar Descripción
systemctl start nombre.service Iniciar una unidad (en este caso el servicio nombre.service)
systemctl stop nombre.service Detiene la ejecución de una unidad
systemctl restart nombre.service Reinicia una unidad
systemctl reload nombre.service Recarga la configuración de un servicio, siempre y cuando la aplicación en cuestión sea capaz de volver a cargar sus archivos de configuración sin reiniciar
systemctl reload-or-restart nombre.service Recarga la configuración del servicio sin reiniciar en caso de que este disponible esta opción y de lo contrario reiniciará el servicio para que se recargue la nueva configuración
Enmascarar/Desenmascarar unidades Descripción
systemctl mask nombre.service Con esta opción, systemd tiene la capacidad de marcar una unidad como completamente deshabilitada. Esto se llama enmascarar la unidad e impide que podamos arrancar la unidad con systemctl start
systemctl unmask nombre.service Desenmascaramos la unidad, es decir liberamos la unidad para que pueda ser ejecutada
Manejar/Editar unidades Descripción
systemctl cat nombre.service Muestra el fichero de configuración de la unidad (como ejecutar cat nombre.service en la carpeta donde se encuentre la unidad)
systemctl list-dependencies nombre.service Nos mostrará un árbol con la jerarquía de las dependencias que deben tratarse para iniciar la unidad en cuestión. Las dependencias, aquí incluyen aquellas unidades que son requeridas directamente o por unidades por encima de ella
systemctl show nombre.service Muestra las propiedades de bajo nivel de una unidad. Podemos elegir la propiedad concreta a mostrar con la opción -p propiedad
systemctl edit nombre.service

Abre un fichero de configuración para la unidad en el editor por defecto. Este será un archivo en blanco que se puede usar para anular o agregar directivas a la definición de la unidad. Se creará un directorio dentro del directorio /etc/systemd/system que contiene el nombre de la unidad con .d anexado. Por ejemplo, para nombre.service, se creará un directorio llamado nombre.service.d

systemctl edit --full nombre.service Editamos el archivo de configuración de la unidad en el editor por defecto (es el editor por defecto de root, aunque lo ejecutemos con sudo desde otro usuario). Podemos cambiar el editor por defecto de root con: "sudo update-alternatives --config editor"
systemctl daemon-reload Recarga la configuración de los ficheros de unidad (necesario después de editar, cambiar o borrar algún fichero de configuración de unidad)
Detener/Reiniciar systema Descripción
systemctl halt Termina todos los procesos y apaga la CPU
systemctl poweroff Como halt, pero también apaga la unidad en sí misma (envía un comando ACPI a la placa, luego a la PSU, para cortar la alimentación). Existe definido un alias y es posible ejecutar directamente sudo poweroff
systemctl reboot Reinicia el equipo. Existe definido un alias y es posible ejecutar directamente sudo reboot
systemctl rescue Pone el sistema en modo rescue (usuario único)

Como vemos el comando systemctl nos permite realizar las tareas básicas de mantenimiento de las unidades así como parar y reiniciar el sistema. En la próxima entrega veremos como monitorizar los logs con journalctl

Modificado por última vez enMartes, 28 Julio 2020 20:42
(0 votos)
Etiquetado como :

Deja un comentario

Asegúrese de introducir toda la información requerida, indicada por un asterisco (*). No se permite código HTML.