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 elstart
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?