En este artículo vamos a echar un vistazo a systemctl y cómo trabajar con los servicios desde la terminal de Ubuntu. Las siguientes líneas pueden resultar de ayuda a los usuario que acaban de llegar a Gnu/Linux en general y en este caso, a Ubuntu en particular.
En sistemas Gnu/Linux, incluido Ubuntu, la utilidad systemctl se puede usar para controlar y administrar servicios systemd. Systemd está formado por un conjunto de demonios, bibliotecas y herramientas que permiten la administración y configuración del sistema e interactuar con el nucleo del sistema Gnu/Linux.
Sintaxis de systemctl
La sintaxis es la regla y el formato de cómo se puede usar el comando systemctl. Estas opciones de sintaxis se pueden reordenar, pero se debe seguir un formato.
La siguiente línea muestra un ejemplo de sintaxis básica para utilizar el comando systemctl:
systemctl [OPCIONES] {COMANDO}
Las opciones son indicadores que determinan cómo se ejecutan o controlan los comandos o modifican el comportamiento estos. El siguiente es un listado con algunas opciones que se pueden utilizar con el comando systemctl:
- – -state=STATE → Con esta opción vamos a poder enumerar unidades de un tipo particular de estado de servicio: Activo o Inactivo.
- -a, – -all → Utilizaremos -a o – -all para mostrar todas las propiedades / todas las unidades actualmente en memoria. Para enumerar todas las unidades instaladas en el sistema, tendremos que utilizar el comando ‘list-unit-files‘ en su lugar.
- -r, – -recursive → Vamos a poder utilizar -r o – -recursive para mostrar la lista de unidades de host y contenedores locales.
- -H – -host = [USUARIO @] HOST → Nos va a permitir operar en un host remoto.
- is-system-running → Verificaremos si el sistema está funcionando completamente.
- hibernate → Hibernación del sistema.
- – -help → Nos va a mostrar las opciones disponibles mediante el mensaje de ayuda.
Ejemplos de systemctl
A continuación vamos a ver algunos ejemplos básicos de cómo ejecutar y usar systemctl en Ubuntu 18.04, que es el sistema que voy a utilizar para este ejemplo. Simplemente tendremos que ejecutar el comando systemctl para hacerlo trabajar.
Iniciar y detener servicios
Para iniciar servicios utilizando el comando systemctl, solo habrá que ejecutar algo como el siguiente comando:
sudo systemctl start application.service
También podemos hacer referencia al nombre de la aplicación sin el .service final. Para detener el servicio, el comando a utilizar será algo como:
sudo systemctl stop application.service
Reiniciar y recargar servicios
Si buscas reiniciar el servicio, debes escribir en la terminal algo como:
sudo systemctl restart application.service
Para recargar el servicio, el comando a utilizar será:
sudo systemctl reload application.service
Al recargar un servicio solo se vuelven a cargar los cambios de configuración en un servicio en ejecución y no se reiniciará por completo el servicio. Para reiniciar completamente un servicio en ejecución, lo ideal es utilizar la opción restart.
Habilitar y deshabilitar servicios
Si queremos deshabilitar o habilitar un servicio, no habrá más que utilizar los siguientes comandos. Habilitar un servicio nos permitirá que se inicie automáticamente cada vez que se inicie el servidor. Para habilitar un servicio el comando que debemos utilizar debe ser algo como:
sudo systemctl enable application.service
Si deshabilitamos un servicio, el servicio no se ejecutará a menos que lo volvamos a habilitar. Para deshabilitar un servicio el comando debe ser:
sudo systemctl disable application.service
Verificar el estado del servicio
Para verificar el estado de un servicio, habrá que utilizar la opción status de la siguiente forma:
sudo systemctl status application.service
Listar todos los servicios
Para enumerar todos los servicios que se están ejecutando o están inactivos, podemos ejecutar:
systemctl list-units --all --type=service --no-pager
El anterior comando debería listar todos los servicios y la pantalla de salida que mostrará, será similar a la anterior captura de pantalla. Si nos interesa ver solo todos los servicios activos, debemos utilizar el siguiente comando:
systemctl list-units --all --state=active
Para listar todos los servicios inactivos, el comando a ejecutar será:
systemctl list-units --all --state=inactive
Más información
Para más información acerca del uso de systemctl, no tendremos más que utilizar la ayuda con la opción –help o consultar las páginas man:
man systemctl