GNU/Linux >> Tutoriales Linux >  >> Linux

Forma correcta de usar Ubuntu systemctl para controlar Systemd

Administrar un servicio o grupo de servicios en una PC moderna con Linux puede ser un lastre, es decir, si no está seguro de lo que está haciendo. Por suerte para usted, Ubuntu Systemctl lo tiene cubierto para administrar servicios en una PC con Linux.

En este tutorial, aprenderá cómo administrar los servicios de Systemd en una PC con Ubuntu ejecutando diferentes systemctl comandos.

¿Listo? ¡Es hora de profundizar!

Requisitos

Este tutorial será una demostración práctica, pero no requiere herramientas especiales, siempre que tenga Ubuntu 16 o una versión superior, está listo para comenzar. Este tutorial utiliza la versión Ubuntu 20.04.3 LTS para las demostraciones.

¿Qué es Ubuntu Systemctl?

Antes de ejecutar los comandos systemctl de Ubuntu, conozca primero qué es Systemctl. Systemctl es una utilidad de línea de comandos para controlar y administrar systemd y los servicios del sistema.

En pocas palabras, Systemctl es un panel de control o administrador de servicios para el sistema systemd init para inicializar los componentes después de que se inicia el kernel de Linux. Systemctl es una colección de bibliotecas, demonios y utilidades que puede usar para administrar servicios.

Para administrar los servicios de manera efectiva, conozca los diferentes estados de los servicios de la siguiente manera:

  • Habilitado – indica que un servicio está configurado para iniciarse cuando se inicia el sistema.
  • Deshabilitado – indica que un servicio está configurado para no iniciarse cuando se inicia el sistema.
  • Activo – indica que un servicio se encuentra actualmente en estado de ejecución.
  • Inactivo – indica que un servicio no se está ejecutando actualmente, pero puede iniciarse cuando alguna aplicación intenta iniciar ese servicio.

Listado de todos los servicios

Ahora que conoce los diferentes estados de los servicios, tal vez quiera ver una lista de todos los servicios en su PC con Ubuntu. La lista de todos los servicios proporciona un puñado de información que lo prepara para administrar los servicios.

Abra su terminal y ejecute el siguiente comando para enumerar todas las unidades de servicio (list-units ) (activo, en ejecución, cerrado o fallido) con el servicio establecido como tipo de unidad (--type=service ).

systemctl list-units --type=service

Elija cualquiera de los servicios de la lista que desea administrar más adelante en este tutorial y anote la UNIDAD nombre (por ejemplo, apache2 ). Presiona la barra espaciadora para desplazarte hacia abajo o presiona la tecla "Q" para salir del comando.

Por cierto, aquí hay una buena guía sobre Linux Shell Scripting.

Listado de servicios con estado específico

En lugar de enumerar todos los servicios, tal vez desee reducir la lista de servicios. Si es así, agregue el --state El parámetro hará el truco, ya que filtra los servicios con el estado específico que especifique.

Ejecute cualquiera de los siguientes comandos para enumerar todos los servicios activos (--type=service --state=active ), tanto en ejecución como cerrados.

systemctl list-units --type=service --state=active

Del mismo modo, para enumerar solo los servicios que se han cerrado o están en ejecución, cambie el valor de estado de active a running o exited , como se muestra en los siguientes comandos:

systemctl --type=service --state=running
systemctl --type=service --state=exited

Listado de servicios habilitados

Además de enumerar los servicios activos, en ejecución y cerrados, también puede enumerar los servicios habilitados y deshabilitados canalizando el grep comando.

Ejecute cualquiera de los siguientes comandos para listar (list-unit-files ) disabled o enabled servicios (--type=service ).

## Lists all Enabled services
systemctl list-unit-files --type=service | grep enabled
## Lists all Disabled services
systemctl list-unit-files --type=service | grep disabled

Tome nota de un servicio habilitado, como se muestra a continuación, ya que lo necesitará más adelante para deshabilitar un servicio, pero este tutorial usa el acpid.service para demostración El acpid es un demonio extensible que admite eventos de configuración avanzada e interfaz de energía (ACPI).

Listado de propiedades del servicio

Además de enumerar los servicios, es posible que desee verificar las propiedades de un servicio. Tener información sobre las propiedades del servicio es útil para la resolución de problemas, los parámetros del proceso o el comportamiento de reinicio.

Ejecute el siguiente comando para show de un servicio (acpid.service ) propiedades en formato clave=valor.

systemctl show acpid.service

Ahora, si solo está buscando una propiedad de servicio específica, puede pasar el -p marca con el nombre de la propiedad.

Ejecute el siguiente comando para show de un servicio (acpid.service ) MainPID propiedad.

systemctl show acpid.service -p MainPID

Gestionar un Servicio Específico

Dado que los conceptos básicos de los servicios de listado están fuera del camino, es hora de administrar un servicio específico (único) ejecutando el systemctl stop y start comandos.

El servicio Apache (apache2) se usa para las siguientes demostraciones, pero puede administrar libremente el servicio que anotó en la sección "Listado de todos los servicios". Pero antes de detener o iniciar un servicio, primero debe verificar el estado del servicio.

Ejecute el siguiente comando en una terminal para ver el apache2 información detallada del servicio como su status .

systemctl status apache2

A continuación, puede ver que el servicio apache2 está activo y ejecutándose.

No es necesario ingresar la contraseña de sudo para ver el estado del servicio, ya que no está cambiando el estado del servicio. Pero si inicia, detiene o reinicia un servicio, debe anteponer el comando sudo e ingresar la contraseña de sudo.

Detención de un servicio

Tal vez desee detener un servicio que quedó colgado y aún ejecutándose en segundo plano. En ese caso, el systemctl stop comando es lo que necesitas. Ejecute el systemctl Comando a continuación para detener el apache2 servicio.

sudo systemctl stop apache2

Si prefiere detener varios servicios simultáneamente, especifique cada servicio separado por un espacio, así:sudo systemctl stop sshd apache2 . Con este comando, detendrá los servicios sshd y apache2 de una sola vez.

Ahora ejecuta el systemctl status comando como lo hizo anteriormente para verificar si el servicio apache2 se detuvo.

systemctl status apache2

Puede ver a continuación que el estado del servicio apache2 cambió a inactivo (muerto) , lo que indica que el servicio se detuvo.

Inicio de un servicio

Ahora, ¿cómo inicia un servicio si notó que no se está ejecutando en absoluto? Ejecutas un comando similar a detener el servicio, que es el systemctl start dominio. Ejecute el siguiente comando para start el apache2 servicio.

sudo systemctl start apache2

Al igual que detener varios servicios, también puede iniciar varios servicios en una sola línea de comando. Reemplace el stop comando con el start comando como este:sudo systemctl start sshd apache2

Ahora ejecuta el systemctl status comando una vez más para verificar si apache2 el servicio se está ejecutando.

systemctl status apache2

Si ve el activo (en ejecución) estado, como se muestra a continuación, entonces está todo listo ya que el servicio está de vuelta en el negocio.

Si prefiere reiniciar el servicio de inmediato sin tener que detenerlo primero. Si es así, busca el systemctl restart comando en su lugar, así:sudo systemctl restart apache2

Habilitar o deshabilitar un servicio

Tal vez haya un servicio en particular que prefiera iniciar o evitar que se inicie en el arranque del sistema. Si es así, ejecuta el systemctl enable o disable el comando es el mejor enfoque.

El enable El subcomando le permite configurar los ajustes de inicio predeterminados en su sistema, mientras que el disable El subcomando evita que un servicio se ejecute en el arranque del sistema.

Ejecute el systemctl comando a continuación a disable el servicio (acpid.service ) que anotó en la sección "Listado de servicios habilitados". Ingrese su contraseña de sudo para autorizar la ejecución del comando.

sudo systemctl disable acpid.service

Ahora que acpid.service es compatible con la configuración dirigida por el sistema operativo y la administración de energía (OSPM); necesita volver a habilitarlo. El comando para habilitar el servicio es similar a deshabilitar un servicio.

Ejecute el systemctl comando a continuación a enable acpid.service . Este comando vuelve a registrar el servicio a la configuración de inicio predeterminada en su sistema.

sudo systemctl enable acpid.service

Conclusión

En este tutorial, se dio cuenta de lo rápido que puede detener, iniciar o reiniciar servicios ejecutando Ubuntu systemctl comandos También has aprendido que el systemctl El comando le permite administrar no solo uno sino múltiples servicios simultáneamente.

Con este nuevo conocimiento, ¿por qué no automatizar los servicios de control en su sistema Ubuntu?


Linux
  1. Administrar el inicio usando systemd

  2. Cómo administrar los servicios de Systemd con Systemctl en Linux

  3. Cómo enumerar los servicios de Systemd en Linux

  4. ¿Cómo puedo configurar un servicio systemd para que se reinicie periódicamente?

  5. Systemd:Uso de After y Requires

Cómo habilitar o deshabilitar servicios en Ubuntu Systemd/Upstart

Listado de servicios en Ubuntu 20.04

Uso de las funciones de systemd para proteger los servicios

Cómo reiniciar servicios en la línea de comandos de Ubuntu

Cómo configurar la ejecución automática de un script de Python usando Systemd

Ubuntu:servicios de inicio, parada y reinicio