Recherche de site Web

Comment répertorier tous les services en cours d'exécution sous Systemd sous Linux


Les systèmes Linux fournissent une variété de services système (tels que la gestion des processus, la connexion, Syslog, cron, etc.) et de services réseau (tels que la connexion à distance, la messagerie électronique, les imprimantes, l'hébergement Web, le stockage de données). , le transfert de fichiers, la résolution de noms de domaine (à l'aide de DNS), l'attribution dynamique d'adresses IP (à l'aide de DHCP) et bien plus encore.

Techniquement, un service est un processus ou un groupe de processus (communément appelés démons) exécutés en permanence en arrière-plan, en attente de demandes (en particulier de la part des clients).

Linux prend en charge différentes manières de gérer les services (démarrer, arrêter, redémarrer, activer le démarrage automatique au démarrage du système, etc.), généralement via un gestionnaire de processus ou de services. La plupart, sinon la totalité, des distributions Linux modernes utilisent désormais le même gestionnaire de processus : systemd.

Qu’est-ce que Systemd ?

Systemd est un gestionnaire de système et de services pour Linux ; un remplacement instantané du processus init, qui est compatible avec les scripts d'initialisation SysV et LSB, et la commande systemctl est le principal outil pour gérer systemd.

Pourquoi répertorier les services en cours d’exécution sous Linux ?

Connaître les services en cours d'exécution sur votre système Linux est essentiel pour plusieurs raisons. Il vous permet de surveiller l'utilisation des ressources, de résoudre les problèmes et de gérer efficacement les performances du système. Systemd simplifie cette tâche en proposant des commandes puissantes pour collecter des informations sur les services actifs.

Dans ce guide, nous démontrerons le processus de liste de tous les services en cours d'exécution sous Systemd sous Linux, en fournissant une procédure pas à pas complète pour les utilisateurs de tous niveaux d'expérience.

Liste des services en cours d'exécution sous SystemD sous Linux

Lorsque vous exécutez la commande systemctl sans aucun argument, elle affichera une liste de toutes les unités systemd chargées (lisez la documentation systemd pour plus d'informations sur les unités systemd), y compris les services, indiquant leur état (qu'ils soient actifs ou non). ).

systemctl 

Répertorier toutes les unités dans systemctl

Pour répertorier tous les services chargés sur votre système (qu'ils soient actifs, en cours d'exécution, arrêtés ou en échec), utilisez la sous-commande list-units et le commutateur --type avec la valeur service.

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

Et pour répertorier tous les services chargés mais actifs, en cours d'exécution et ceux qui sont terminés, vous pouvez ajouter l'option --state avec une valeur de active, comme suit.

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

Liste des services en cours d'exécution dans systemctl

Mais pour avoir un aperçu rapide de tous les services en cours d'exécution (c'est-à-dire tous les services chargés et en cours d'exécution active), exécutez la commande suivante.

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

Explorons les termes clés liés aux unités Systemd et à leur statut :

  • Unité – Une unité peut être un service, un socket, un appareil ou diverses autres entités.
  • Charger – Il indique si l'unité est chargée ou non. Une unité peut être chargée mais pas nécessairement active.
  • Actif : indique si l'unité est en cours d'exécution ou si elle a rencontré des problèmes et est en panne ou inactive.
  • SUB – Il fournit des détails supplémentaires sur l'état spécifique de l'unité. Pour les services, cela peut indiquer si le service est en cours d'exécution (en cours d'exécution), arrêté (quitté) ou rencontre des problèmes (en échec).
  • Description – Elle aide les utilisateurs à identifier et à comprendre le but de l'unité sans se plonger dans les fichiers de configuration détaillés.

Créer un alias pour systemctl

Si vous utilisez fréquemment la commande précédente, vous pouvez créer une commande d'alias dans votre fichier ~/.bashrc comme indiqué, pour l'invoquer facilement.

vim ~/.bashrc

Ajoutez ensuite la ligne suivante sous la liste des alias comme indiqué dans la capture d'écran.

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

Enregistrez les modifications dans le fichier et fermez-le. À partir de maintenant, utilisez la commande « running_services » pour afficher une liste de tous les services chargés et en cours d'exécution sur votre serveur.

running_services	#use the Tab completion 

Trouver un port sur lequel un processus écoute

En outre, un aspect important des services est le port qu’ils utilisent. Pour déterminer le port sur lequel un processus démon écoute, vous pouvez utiliser la commande netstat ou ss comme indiqué.

Où l'indicateur -l signifie imprimer toutes les sockets d'écoute, -t affiche toutes les connexions TCP, -u affiche toutes les connexions UDP, - n signifie imprimer les numéros de port numériques (au lieu des noms d'application) et -p signifie afficher le nom de l'application.

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

La cinquième colonne affiche le socket : Local Address:Port. Dans ce cas, le processus zabbix_agentd écoute sur le port 10050.

Liste des services de pare-feu en cours d'exécution

De plus, si votre serveur dispose d'un service de pare-feu en cours d'exécution, qui contrôle la manière de bloquer ou d'autoriser le trafic vers ou depuis des services ou des ports sélectionnés, vous pouvez répertorier les services ou les ports qui ont été ouverts dans le pare-feu, à l'aide de la commande firewall-cmd<. ou commande ufw (selon les distributions Linux que vous utilisez), comme indiqué.

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

sudo ufw status     [UFW Firewall]

C'est tout pour le moment! Dans ce guide, nous avons montré comment afficher les services en cours d'exécution sous systemd sous Linux. Nous avons également expliqué comment vérifier le service de port sur lequel le service écoute et comment afficher les services ou les ports ouverts dans le pare-feu du système.

Avez-vous des ajouts à apporter ou des questions ? Si oui, contactez-nous en utilisant le formulaire de commentaires ci-dessous.