Búsqueda de sitios web

Cómo enumerar todos los servicios en ejecución en Systemd en Linux


Los sistemas Linux proporcionan una variedad de servicios de sistema (como gestión de procesos, inicio de sesión, syslog, cron, etc.) y servicios de red (como inicio de sesión remoto, correo electrónico, impresoras, alojamiento web, almacenamiento de datos). , transferencia de archivos, resolución de nombres de dominio (usando DNS), asignación dinámica de direcciones IP (usando DHCP) y mucho más).

Técnicamente, un servicio es un proceso o grupo de procesos (comúnmente conocidos como daemons) que se ejecutan continuamente en segundo plano, esperando que lleguen solicitudes (especialmente de los clientes).

Linux admite diferentes formas de administrar servicios (iniciar, detener, reiniciar, habilitar el inicio automático al iniciar el sistema, etc.), generalmente a través de un administrador de procesos o servicios. La mayoría, si no todas, las distribuciones modernas de Linux ahora utilizan el mismo administrador de procesos: systemd.

¿Qué es SystemD?

Systemd es un administrador de sistemas y servicios para Linux; un reemplazo directo para el proceso init, que es compatible con los scripts de inicio SysV y LSB, y el comando systemctl es la herramienta principal para administrar systemd.

¿Por qué enumerar los servicios en ejecución en Linux?

Conocer los servicios en ejecución en su sistema Linux es vital por varias razones. Le permite monitorear la utilización de recursos, solucionar problemas y administrar el rendimiento del sistema de manera eficiente. Systemd simplifica esta tarea al ofrecer potentes comandos para recopilar información sobre los servicios activos.

En esta guía, demostraremos el proceso de enumerar todos los servicios en ejecución en Systemd en Linux, proporcionando un tutorial completo para usuarios de todos los niveles de experiencia.

Listado de servicios en ejecución en SystemD en Linux

Cuando ejecuta el comando systemctl sin ningún argumento, mostrará una lista de todas las unidades systemd cargadas (lea la documentación de systemd para obtener más información sobre las unidades systemd), incluidos los servicios, mostrando su estado (ya sea activo o no). ).

systemctl 

Listar todas las unidades en systemctl

Para enumerar todos los servicios cargados en su sistema (ya sean activos, en ejecución, cerrados o fallidos, utilice el subcomando list-units y el modificador --type con un valor de servicio.

systemctl list-units --type=service
OR
systemctl --type=service

Y para enumerar todos los servicios cargados pero activos, tanto en ejecución como aquellos que han salido, puede agregar la opción --state con un valor de active, de la siguiente manera.

systemctl list-units --type=service --state=active
OR
systemctl --type=service --state=active

Listar servicios en ejecución en systemctl

Pero para echar un vistazo rápido a todos los servicios en ejecución (es decir, todos los servicios cargados y en ejecución activa), ejecute el siguiente comando.

systemctl list-units --type=service --state=running 
OR
systemctl --type=service --state=running

Exploremos los términos clave relacionados con las unidades Systemd y su estado:

  • Unidad: una unidad podría ser un servicio, un socket, un dispositivo u otras entidades.
  • Cargar – Indica si la unidad está cargada o no. Una unidad puede estar cargada pero no necesariamente activa.
  • Activo: muestra si la unidad está funcionando activamente o si ha encontrado problemas y se encuentra en un estado fallido o inactivo.
  • SUB: proporciona detalles adicionales sobre el estado específico de la unidad. Para los servicios, podría indicar si el servicio se está ejecutando (en ejecución), detenido (salido) o tiene problemas (falló).
  • Descripción: ayuda a los usuarios a identificar y comprender el propósito de la unidad sin profundizar en los archivos de configuración detallados.

Crear un alias para systemctl

Si usa con frecuencia el comando anterior, puede crear un comando de alias en su archivo ~/.bashrc como se muestra, para invocarlo fácilmente.

vim ~/.bashrc

Luego agregue la siguiente línea debajo de la lista de alias como se muestra en la captura de pantalla.

alias running_services='systemctl list-units  --type=service  --state=running'

Guarde los cambios en el archivo y ciérrelo. De ahora en adelante, utilice el comando “running_services” para ver una lista de todos los servicios cargados y en ejecución activa en su servidor.

running_services	#use the Tab completion 

Encuentre un puerto en el que esté escuchando un proceso

Además, un aspecto importante de los servicios es el puerto que utilizan. Para determinar el puerto en el que escucha un proceso demonio, puede usar el comando netstat o ss como se muestra.

Donde la bandera -l significa imprimir todos los sockets de escucha, -t muestra todas las conexiones TCP, -u muestra todas las conexiones UDP, - n significa imprimir números de puerto numéricos (en lugar de nombres de aplicaciones) y -p significa mostrar el nombre de la aplicación.

netstat -ltup | grep zabbix_agentd
OR
ss -ltup | grep zabbix_agentd

La quinta columna muestra el socket: Dirección local: Puerto. En este caso, el proceso zabbix_agentd está escuchando en el puerto 10050.

Listado de servicios de firewall en ejecución

Además, si su servidor tiene un servicio de firewall en ejecución, que controla cómo bloquear o permitir el tráfico hacia o desde servicios o puertos seleccionados, puede enumerar los servicios o puertos que se han abierto en el firewall, usando el firewall-cmd< o comando ufw (dependiendo de las distribuciones de Linux que esté utilizando) como se muestra.

firewall-cmd --list-services   [FirewallD]
firewall-cmd --list-ports

sudo ufw status     [UFW Firewall]

¡Eso es todo por ahora! En esta guía, demostramos cómo ver los servicios en ejecución en systemd en Linux. También cubrimos cómo verificar el servicio del puerto que está escuchando y cómo ver los servicios o puertos abiertos en el firewall del sistema.

¿Tiene alguna adición que hacer o preguntas? En caso afirmativo, comuníquese con nosotros mediante el formulario de comentarios a continuación.