Linux es un sistema multitarea opcional como casi todos en estos días. Y para que esta sea una experiencia real, muchas aplicaciones se manejan en segundo plano a través de servicios. Bueno, en varios momentos y circunstancias, el usuario del sistema necesita iniciar, detener o reiniciar estos servicios. Por eso, en esta publicación, aprenderá cómo manejar servicios en Linux con el comando systemctl.
Además, en este post te mostraremos muchas de las utilidades que puede hacer el comando. Además de esto, explicaremos qué es un servicio y cómo llegamos a systemctl.
¿Cuál es la diferencia entre systemd y el comando systemctl?
Antes de echar un vistazo al uso de systemctl comando, es una buena idea establecer la diferencia entre el comando y systemd .
Con el principal objetivo de optimizar la gestión y carga de servicios Linux, systemd nació. Reemplaza al antiguo Sysvinit no sin una dosis de controversia.
Systemd está compuesto por una serie de demonios y scripts compatibles con SysV y LSB. También permite el inicio de los demonios bajo demanda, monitoreo de los procesos con el uso de los grupos de control de Linux.
Por otro lado, systemctl es un comando utilizado para administrar los servicios del sistema. Funciona como una especie de interfaz para systemd . Ahora lo hace. Vamos a usar systemctl .
Administrar servicios en Linux con el comando systemctl
Si usa una distribución Linux moderna, entonces tiene instalado y ejecutando systemd y por lo tanto el systemctl comando.
El comando en sí es muy fácil de usar. Por lo tanto, la sintaxis básica es la siguiente.
systemctl [OPTIONS...] {COMMAND} ...
Como la mayoría de los comandos en Linux, tiene opciones que modifican el comportamiento del sistema. Si muestra el systemctl ayuda, verá muchas opciones y comandos disponibles.
:~$ systemctl --help
Esto se debe a que aunque systemctl se utiliza para administrar los servicios del sistema, también le permite realizar otras operaciones, como apagar o reiniciar su computadora.
Sin embargo, estudiarás la gestión de servicios con systemctl a través de situaciones.
1. Listar los servicios del sistema
Primero, hay que tener en cuenta que el comando systemctl tiene que ser utilizado como el superusuario. O al menos que tu usuario pueda usar sudo . Luego, abra una terminal y enumere los servicios del sistema en systemd , ejecuta el siguiente comando
:~$ sudo systemctl
Como puede ver en la salida de la pantalla, es un poco engorroso. Pero aún puede visualizar los servicios del sistema.
Sin embargo, es posible agregar el subcomando list-unit y un filtro para mejorar la presentación de los resultados.
:~$ sudo systemctl list-units --type=service --all
Esta imagen presenta resultados más claros. Las columnas más importantes son la carga, activo y subcolumnas, donde se muestra si está activo en el sistema y si se está ejecutando.
Si solo desea mostrar los que están en ejecución, simplemente modifique el comando anterior para este:
:~$ sudo systemctl list-units --type=service --state=running
2. Inicie, detenga y reinicie servicios con el comando systemctl
Ahora que sabe qué servicios hay en su sistema, puede elegir iniciarlos, si están detenidos, o detenerlos si se están ejecutando.
Para iniciar un servicio, use este comando:
:~$ sudo systemctl start [service]
Reemplace servicio por el nombre del servicio. En el caso de MySQL, el comando sería el siguiente:
:~$ sudo systemctl start mysql
Por el contrario, si desea detenerlo, utilice el subcomando stop y el nombre del servicio.
:~$ sudo systemctl stop [service]
Siguiendo el ejemplo de MySQL, se vería así:
:~$ sudo systemctl stop mysql
Por otro lado, hay ocasiones en las que hay que realizar cambios en la configuración de algún servicio. Para que se apliquen estos cambios, debe reiniciarlo.
:~$ sudo systemctl restart [service]
El servicio también se puede recargar. En este caso, solo reconfigure parcialmente el servicio. El subcomando es "recargar".
:~$ sudo systemctl reload [service]
Para reiniciarlo completamente tienes que usar la opción reiniciar.
3. Habilitar y deshabilitar el servicio para iniciar o no en el arranque del sistema
Cuando un servicio de terceros es muy importante para el funcionamiento de nuestro servidor o alguna de esas aplicaciones, es conveniente pedir a systemd que lo arranque junto con el sistema.
Para hacer esto, simplemente siga la siguiente sintaxis:
:~$ sudo systemctl enable [service]
Entonces, reemplace [servicio] con el nombre del servicio que necesita.
Para deshabilitarlo, use el subcomando deshabilitar.
:~$ sudo systemctl disable [service]
De esta manera, puede establecer qué servicios se iniciarán automáticamente y cuáles no.
4. Enmascarar y desenmascarar un servicio con Systemctl
Si desea deshabilitar un servicio pero no puede habilitarlo de forma automática o manual, debe enmascararlo. No se preocupe, siempre se puede desenmascarar y volver a habilitar.
Entonces, para enmascarar un servicio, use el siguiente comando
:~$ sudo systemctl mask [service]
Y para revertir el comando anterior:
:~$ sudo systemctl unmask [service]
Esto agrega una capa adicional de seguridad para la administración del servidor. Ideal para compartir trabajo. Porque para iniciar o habilitar un servicio enmascarado, primero debe desenmascararlo.
5. Comprobar el estado de un servicio con el comando systemctl
A menudo es útil saber cuál es el estado de un servicio. Esto es para detectar posibles errores.
Para hacer esto, use el siguiente comando:
:~$ sudo systemctl status [service]
Si el servicio se está ejecutando, verá una imagen similar a esta.
Si no, verás algo como esto.
Esto es muy útil para saber si un determinado servicio se está ejecutando.
Conclusión
Gestionar servicios puede resultar un poco complicado desde el terminal, pero no lo es. Y esto ayuda a que nuestro sistema sea gestionado correctamente por el usuario.
En esta publicación, ha utilizado el comando systemctl para la gestión básica de estos servicios. Sin embargo, los ejemplos que acabas de observar son los casos más comunes, por lo que serán suficientes.