Cómo administrar y listar servicios en Linux
Un sistema operativo requiere programas que se ejecutan en segundo plano llamados servicios. En un sistema Linux, estos servicios se llaman daemons y se gestionan mediante un sistema init como systemd.
Los administradores de sistemas deben saber cómo listar los servicios en Linux para gestionar y solucionar eficazmente los problemas de sus servidores. Esto ayuda a garantizar que su servidor privado virtual (VPS) funcione de forma óptima y segura.
Este artículo te explicará cómo utilizar distintos comandos del sistema init para ver los servicios activos en Linux. También aprenderás a gestionar los servicios y recibirás consejos para una administración eficaz del sistema Linux.
Tabla de Contenidos
Cómo listar los servicios en Linux
Esta sección explicará diferentes métodos para listar los servicios en ejecución en Linux.
Para ejecutar comandos de Linux en un servidor remoto, conéctate utilizando un cliente SSH o terminal e inicia sesión como usuario root.
Consejo profesional
Los usuarios del VPS de Hostinger pueden conectarse a su servidor remoto y ejecutar comandos directamente en hPanel utilizando el terminal del navegador.
Cómo listar los servicios de Linux con Systemctl
La mayoría de los sistemas Linux modernos utilizan systemd, un sistema de inicio y gestor de servicios para controlar daemons. Es un sustituto directo de los procesos de inicio de las distribuciones más antiguas.
Systemd tiene el comando systemctl, que permite a los usuarios gestionar las configuraciones de sus sistemas y servicios. Por ejemplo, utilízalo para listar todos los archivos de unidad de tu servidor Linux:
sudo systemctl list-unit-files --type service --all
El terminal muestra los archivos de unidad con el tipo de servicio en formato tabular, incluyendo su estado y el ajuste predefinido.
El estado de servicio es el estado operativo de las unidades systemd. Los más comunes son:
- Enabled (activos): servicios activos ejecutándose en segundo plano.
- Disabled (desactivados): servicios deshabilitados que los usuarios pueden activar directamente mediante el comando start.
- Masked (enmascarados): servicios detenidos que sólo pueden iniciarse eliminando la propiedad masked.
- Static (estáticos): servicios que sólo se ejecutan cuando otro programa o unidad los necesita.
- Failed (fallidos): servicios inactivos que no pueden cargarse o funcionar correctamente.
Mientras tanto, el preajuste del proveedor es la configuración por defecto de un servicio, que determina si se inicia o no durante el arranque. También puedes utilizar el comando systemctl list-units para listar los servicios cargados correctamente:
sudo systemctl list-units --type service --all
Una unidad incluye todos los procesos de systemd, incluidos los servicios del sistema, los dispositivos y los montajes. Utiliza la bandera -type para listar sólo el tipo de unidad de servicio.
Consejo profesional
A diferencia de list-units, el comando systemctl list-unit-files lista los archivos de unidad instalados o la configuración de cada proceso systemd. Como muestra todos los servicios independientemente de su estado de inicio, listar archivos de unidad es más adecuado para comprobar los daemons instalados.
Puedes combinar systemctl con el comando grep o la opción –state para filtrar un estado concreto de un servicio Linux. Estas son las técnicas de filtrado de servicios:
sudo systemctl list-unit-files --type service | grep status
sudo systemctl list-unit-files --type service –-state=status
No olvides sustituir status por el estado actual de tu archivo de unidad. Por ejemplo, utiliza enabled para listar sólo los servicios en ejecución que estén cargados correctamente. También puedes filtrar unidades, pero el estado puede diferir:
sudo systemctl list-units --type service –-state=status
Puedes imprimir sólo las últimas líneas combinando systemctl con el comando tail. Por ejemplo, ejecuta lo siguiente para mostrar los 10 últimos servicios activados:
sudo systemctl list-unit-files --type service --state=enabled | tail
Cómo listar servicios en Linux utilizando el comando service
Los sistemas operativos Linux más antiguos utilizan un gestor de servicios diferente llamado Sistema V. Para gestionar servicios en este sistema init, utiliza el comando service.
Por ejemplo, ejecuta lo siguiente para listar todos los daemons:
service --status-all
El comando también mostrará el estado de los servicios mediante símbolos. Los símbolos pueden variar según la distribución de Linux. Estos son los más comunes:
- [+]: un servicio activo
- [-]: servicios inactivos o desactivados
- [?]: se desconoce el estado del servicio
Utiliza el comando grep para filtrar los servicios en ejecución en función de su estado. Por ejemplo, éste es el comando para listar los servicios en ejecución:
sudo service --status-all | grep "+"
Sustituye el símbolo + para listar las unidades desconocidas o inactivas. Ten en cuenta que los servicios con estado desconocido también pueden incluirse cuando filtras servicios en ejecución o desactivados.
Puedes determinar el estado de un servicio concreto utilizando su nombre:
sudo service service-name status
Consejo profesional
Varias distribuciones con systemd, como Debian 8.0, también pueden proporcionar SysV como alternativa. Esto significa que puedes listar servicios utilizando systemctl y service.
Cómo listar servicios en Linux con herramientas de gestión de servicios
Algunas versiones y distribuciones de Linux utilizan herramientas alternativas de gestión de servicios, además de systemd y System V. Un ejemplo popular es Upstart, incluido en Ubuntu 14.04, Fedora 9, Red Hat Linux Enterprise 6 y sus derivados.
Para listar todos los servicios con Upstart, utiliza el comando initctl:
sudo initctl list
El terminal listará las instancias en ejecución con su ID de identificación y su estado actual. Los estados de servicio comunes en Upstart incluyen:
- Running (en ejecución): servicios cargados que se están ejecutando actualmente.
- Stopped (detenido): servicios desactivados por orden del usuario o por diseño.
- Killed (eliminados): servicios detenidos involuntariamente debido a una interrupción del proceso o a una señal de finalización.
- Starting (iniciando): servicios que están a punto de ejecutarse.
- Waiting (en espera): instancias que están esperando a que se inicie un evento desencadenante.
Puedes utilizar grep para filtrar el servicio en función de su estado. La sintaxis es similar a la del comando service o systemctl:
initctl list | grep running
Otras distribuciones de Linux, como Gentoo, Funtoo, Alpine e Hyperbola, utilizan el gestor de servicios OpenRC.
Para listar los servicios de un sistema OpenRC, utiliza el comando rc-status:
rc-status
Dependiendo de tu distribución, la salida puede variar ligeramente. Por lo general, mostrará el nivel de ejecución actual del sistema y el estado de cada servicio, por ejemplo:
- Started (iniciados): servicios activos que funcionan actualmente.
- Stopped (detenido): servicios terminados intencionadamente.
- Crashed (bloqueados): servicios cargados que han encontrado un error y se han detenido.
- Failed (fallidos): servicios que no pudieron iniciarse.
- Inactive (inactivos): servicios inactivos en el nivel de ejecución actual.
Añade el comando grep para filtrar los servicios en función de su estado. Para comprobar el estado de los servicios en otro nivel de ejecución del sistema, cambia el predeterminado mediante este comando:
rc runlevel
Cómo gestionar los servicios Linux
Administrar los servicios de Linux es crucial para el rendimiento, seguridad y funcionalidad de tu sistema.
Por ejemplo, terminar los servicios que consumen muchos recursos innecesariamente puede minimizar el uso de hardware y optimizar el rendimiento de tu sistema.
Otra tarea de gestión crucial es reiniciar los servicios, permitiendo borrar los servicios cargados en la memoria del sistema y garantizando que las actualizaciones se aplican correctamente.
Los comandos de gestión de servicios difieren según el sistema init. En este tutorial utilizaremos systemctl, ya que es el más utilizado en las distribuciones Linux modernas.
Para iniciar o detener los servicios de Linux con systemctl, ejecuta una de las siguientes acciones.
sudo systemctl start service-name
sudo systemctl stop service-name
Sustituye service-name por el nombre real de tu servicio. Para ejecutar servicios enmascarados, primero elimina la propiedad enmascarada mediante el comando unmask.
Para gestionar los servicios de inicio, utiliza lo siguiente:
sudo systemctl enable service-name
sudo systemctl disable service-name
Antes de activar y desactivar servicios en ejecución, comprueba si otros demonios o aplicaciones dependen de ellos.
Desactivar una dependencia puede hacer que un servicio se bloquee, provocando la inestabilidad del sistema. Para comprobar las dependencias de los servicios, utiliza el siguiente comando:
sudo systemctl list-dependencies service-name
También puedes listar la dependencia inversa: servicios que dependen del que estás comprobando. Este es el comando:
sudo systemctl list-dependencies --reverse service-name
Para modificar la configuración de un servicio, utiliza los comandos sed grep y awk. grep localiza el patrón en el archivo de configuración que necesita modificación. Mientras, awk recupera el valor y sed sustituye la cadena de destino por el nuevo valor.
Consejo profesional
¿No sabes cómo escribir un comando para tus necesidades? Utiliza el asistente con IA Kodee de Hostinger, potenciado por GPT, para generar códigos, comandos e instrucciones fácilmente para gestionar tu servidor.
Otro método para gestionar los servicios Linux en un VPS es utilizar un panel de control de alojamiento que ofrezca una interfaz visual. La gestión gráfica de servicios es adecuada para principiantes porque es más sencilla que utilizar una interfaz de línea de comandos.
Hostinger ofrece varios paneles de control, como Virtualmin, Webmin y Plesk. Ten en cuenta que las plantillas disponibles difieren en función de la virtualización de tus planes VPS.
Los usuarios del alojamiento VPS de Hostinger pueden instalar fácilmente el panel de control eligiendo una plantilla a través del menú Sistema operativo en el área de gestión del VPS. Para saber más, consulta nuestra guía sobre cómo cambiar el sistema operativo de tu VPS.
¡Atención! Haz una copia de seguridad de los archivos de tu VPS antes de cambiar a otra plantilla. Este proceso borrará tus datos.
Buenas prácticas de gestión de servicios Linux
En esta sección, explicaremos varias buenas prácticas para gestionar servicios de Linux que te ayudarán a mantener el rendimiento y la seguridad de tu sistema de forma eficaz.
Revisar periódicamente la configuración de cada servicio
Una actualización puede cambiar la configuración por defecto de un servicio, afectando a su comportamiento y al rendimiento del sistema. Algunas opciones del servicio también pueden quedar obsoletas debido a las actualizaciones.
Comprobar periódicamente la configuración de cada servicio te ayuda a cambiar los ajustes obsoletos para garantizar que el servicio funciona correctamente y cumple las normas de seguridad actuales.
Además, las comprobaciones periódicas ayudan a determinar qué servicio hay que ajustar al implementar nuevos cambios en tu servidor o aplicaciones alojadas. Garantiza que la configuración actual del servicio cumple los nuevos requisitos del sistema.
Eliminar o desactivar servicios que ya no son necesarios
Los servicios innecesarios en ejecución pueden malgastar recursos y ralentizar tu sitio web. Deshabilitarlos te permite asignar recursos de forma más eficiente, lo que se traduce en un rendimiento más constante del servidor.
Estos servicios pueden exponer tu servidor a ciberataques. Además de abrir puertos adicionales, pueden estar obsoletos y contener fallos de seguridad sin corregir.
Así mismo, minimizar la superficie de ciberataque, desactivar o eliminar servicios simplifica las auditorías de seguridad y la resolución de problemas, porque habrá menos instancias que analizar.
Por último, también reduce los errores de conflicto de servicio y los posibles errores de configuración.
¡Atención! No elimines ni desactives servicios sin entender las consecuencias. Pruébalo siempre primero en un entorno de desarrollo para evitar romper el servidor de producción.
Mantener una documentación detallada de cada servicio
Un VPS Linux puede tener hasta cientos de servicios activos. De ahí que mantener una documentación detallada sea crucial para la gestión del servidor. Debes hacer un seguimiento de la información sobre el nombre, la finalidad, las opciones de configuración y las dependencias de cada servicio.
Para un equipo, la documentación ayuda a incorporar nuevos miembros, permitiéndoles comprender fácilmente la configuración del sistema. También les permite replicar con precisión el entorno de producción actual al configurar un nuevo VPS o un área de ensayo local.
La documentación también simplifica la copia de seguridad y restauración del servidor, ya que puedes hacer un seguimiento de qué servicios instalar y sus configuraciones. También es útil para solucionar problemas al comprobar qué servicios se han modificado.
Para crear documentación, utiliza el operador > para mostrar los resultados del comando systemctl en un archivo. Por ejemplo, utiliza el siguiente comando para crear un archivo que contenga una lista de servicios:
sudo systemctl list-unit-files --type service --all > service_list.txt
Comprender las dependencias entre servicios
Antes de desactivar o modificar un servicio, debes conocer sus dependencias y qué demonios dependen de él. Esto ayuda a evitar que otros servicios se bloqueen, lo que puede provocar reacciones en cadena que comprometan la estabilidad de tu sistema.
Por ejemplo, tu aplicación web alojada depende del servicio PHP-FPM, que depende del daemon httpd de Apache. Si desactivas Apache httpd, PHP-FPM se bloqueará y la aplicación web dejará de funcionar.
Como varios servicios pueden depender de un demonio, puede ser difícil rastrear la causa raíz. Recomendamos mapear la dependencia de un servicio antes de desactivarlo para facilitar la depuración.
Supervisar la salud y el rendimiento de los servicios
Supervisar la salud y el rendimiento de un servicio te ayuda a identificar los problemas antes de que causen una disminución del rendimiento y tiempo de inactividad. También te proporciona datos importantes para los registros y diagnósticos del servicio.
Además, la monitorización de los servicios de Linux ayuda a determinar si los nuevos cambios o actualizaciones del sistema afectan negativamente al rendimiento. Para comprobar el estado de los servicios, utiliza el siguiente comando systemctl:
sudo systemctl status service-name
Sustituye service-name por el nombre del servicio. El terminal mostrará su descripción, estado de carga, ID del proceso, uso del hardware y registros del servicio.
Recomendamos complementarla con otras herramientas para un análisis más profundo y preciso. Entre las opciones más populares de este tipo de herramientas se encuentran Prometheus con Grafana y New Relic.
Conclusión
Los servicios o daemons son programas de Linux que se ejecutan en segundo plano. Los administradores de sistemas deben saber cómo gestionar los servicios para mantener la funcionalidad y el rendimiento de su servidor.
Los comandos para listar servicios difieren según el sistema init de Linux. El listado de servicios Systemd utiliza systemctl, mientras que System V utiliza service. Además, las herramientas de control de servicios como Upstart y OpenRC utilizan initctl y rc-status, respectivamente.
Además de para listar, estos comandos son útiles para controlar el servicio durante el arranque y para gestionar instancias. Los usuarios también pueden comprobar el estado de los servicios combinándolos con el comando grep.
Para mejorar la seguridad y el rendimiento del servidor, comprueba regularmente los archivos de configuración de tus servicios y desactiva los innecesarios. Antes de hacerlo, comprueba siempre sus dependencias y crea documentación para evitar errores y simplificar el proceso de restauración.
Esperamos que esta guía te haya ayudado a entender cómo ver servicios corriendo en Linux. Si tienes algún comentario o pregunta, escríbela en la sección de abajo. ¡Buena suerte!
Comentarios
September 20 2020
Excelente tutorial, de gran ayuda en cuanto a listas y servicios. Se debe seguir fomentando este tipo de información ya que los usuarios de GNU Linux lo ameritan. Una pregunta adicional, cuál es es el procedimiento para subir tutoriales a páginas como estas?