Administrar un servidor de Linux es una tarea crítica y, a veces, muy difícil si no tienes las herramientas adecuadas. A menudo, la dificultad radica en tener que configurar y mantener muchos recursos y servicios. En un servidor, la mayoría de los recursos son softwares, lo que los hace un poco más fáciles de monitorear. En este tutorial, aprenderás todos los conceptos básicos de los servicios de Linux, incluyendo cómo administrar, controlar y listar servicios en Linux.
Servicios de Linux
Un servicio es un programa que se ejecuta en segundo plano, fuera del control interactivo de los usuarios del sistema, ya que carecen de una interfaz. Esto con el fin de proporcionar aún más seguridad, pues algunos de estos servicios son cruciales para el funcionamiento del sistema operativo.
Por otro lado, en sistemas como Unix o Linux, los servicios también se conocen como daemons. A veces el nombre de estos servicios, o daemons, terminan con la letra d. Por ejemplo, sshd es el nombre del servicio que maneja SSH.
Entonces, pasemos a saber cómo listar servicios en Linux.
Cómo listar servicios en Linux
Consideremos un escenario potencial: ejecutas tu sistema Linux y ya no puedes acceder a localhost. Lo más probable es que el servicio HTTP fue deshabilitado y está causando el problema.
Para solucionar problemas como este y muchos otros, es bueno saber cómo listar todos los servicios en Linux.
Afortunadamente, CentOS y Ubuntu, dos de los sistemas operativos más populares en sus áreas, comparten systemd. Eso significa que los comandos que vamos a presentar son compatibles con ambos sistemas.
Primero, tienes que conectarte a tu servidor usando SSH.
Una vez dentro, debes ser el usuario raíz para listar los servicios en Linux.
su
Ahora puedes listar todos los servicios en Linux. Para hacerlo, ejecuta el comando:
sudo systemctl list-unit-files --type service --all
Cuando ejecutes el comando, verás todos los servicios que están en el sistema. Sin embargo, también verás que algunos tienen un estado definido. Veamos qué significa todo esto.
- Los servicios habilitados (Enabled) son los que se están ejecutando actualmente. Generalmente estos no tienen problemas.
- Los servicios deshabilitados (Disabled) son los que no están activos, pero se pueden activar en cualquier momento sin ningún problema.
- Los servicios enmascarados (Masked) no se ejecutarán a menos que les quites esa propiedad.
- Los servicios estáticos (Static) solo se utilizarán en caso de que otro servicio o unidad los necesite.
- Finalmente, hay servicios generados (generated) a través de un initscript SysV o LSB con el generador systemd.
En caso de que solo quieras saber cuáles son los servicios que están activos, tienes que usar un comando junto con grep, así:
sudo systemctl | grep running
Administrar servicios de Linux
Ahora que ya sabes cómo listar servicios en Linux, es el momento de aprender a administrar un servicio específico. Ten en cuenta que cada servicio representa un software y cada uno de los softwares funciona de manera diferente. En este tutorial solo mostraremos cómo iniciar, verificar el estado y detener los servicios: los controles básicos.
Para iniciar un servicio en Linux, necesitas ejecutar el siguiente comando:
sudo systemctl start [nombre_servicio]
Si el servicio está configurado correctamente, se iniciará. Ahora, si quieres detenerlo, usa el siguiente comando:
sudo systemctl stop [nombre_servicio]
Por otro lado, para verificar el estado de un servicio puedes usar:
sudo systemctl status [nombre_servicio]
También es posible ejecutar un servicio mientras se carga el sistema operativo:
sudo systemctl enable [nombre_servicio]
O eliminarlo de la carga inicial:
sudo systemctl disable [nombre_servicio]
Finalmente, es posible verificar qué puerto está siendo utilizado por un servicio. Para esto, usar netstat.
Para instalarlo en Ubuntu, simplemente ejecuta:
sudo apt install netstat-nat
Si estás usando CentOS 7:
yum install net-tools
Luego, ejecuta el siguiente comando:
sudo netstat -plnt
La salida te dará toda la información de red requerida.