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
stopcomando con elstartcomando 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 restartcomando 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?