Les systèmes Linux fournissent une variété de services système (tels que la gestion des processus, connexionsyslog, cron, etc.) et les 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 nom de domaine (à l’aide de DNS), l’attribution dynamique d’adresse IP (à l’aide DHCP), et beaucoup plus).
Techniquement, un service est un processus ou un groupe de processus (communément appelé démons) s’exécutant en continu en arrière-plan, attendant l’arrivée de demandes (en particulier de la part de clients).
Linux prend en charge différentes manières de gérer (démarrer, arrêter, redémarrer, activer le démarrage automatique au démarrage du système, etc.) des services, généralement via un gestionnaire de processus ou de services. La plupart des distributions Linux modernes, sinon toutes, utilisent désormais le même gestionnaire de processus : systemd.
Systemd est un gestionnaire de système et de service pour Linux ; un remplacement direct pour le initialiser procédé compatible avec SysV et LSB scripts init, et la commande systemctl est le principal outil pour gérer systemd.
Dans ce guide, nous montrerons comment répertorier tous les services en cours d’exécution sous systemd sous Linux.
Liste des services en cours d’exécution sous SystemD sous Linux
Lorsque vous exécutez le commande systemctl sans aucun argument, il 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 statut (actif ou non).
# systemctl
Pour répertorier tous les services chargés sur votre système (qu’ils soient actifs, en cours d’exécution, fermés ou en échec, utilisez le liste-unités sous-commande et --type
commutateur avec une valeur de service.
# systemctl list-units --type=service OR # systemctl --type=service
Et pour répertorier tous les services chargés mais actifs, à la fois en cours d’exécution et ceux qui ont quitté, vous pouvez ajouter le --state
option avec une valeur de actifcomme suit.
# systemctl list-units --type=service --state=active OR # systemctl --type=service --state=active
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), exécutez la commande suivante.
# systemctl list-units --type=service --state=running OR # systemctl --type=service --state=running
Si vous utilisez fréquemment la commande précédente, vous pouvez créer une commande d’alias dans votre ~/.bashrc fichier 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. Et à partir de maintenant, utilisez le « les services en cours d’exécution” 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
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ù le drapeau -l
signifie imprimer toutes les prises 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 montre le socket : Local Address:Port. Dans ce cas, le processus zabbix_agentd écoute sur le port 10050.
En outre, si votre serveur dispose d’un service de pare-feu en cours d’exécution, qui contrôle comment bloquer ou autoriser le trafic vers ou depuis les services ou 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 pare-feu-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 que le service de port est à l’écoute et comment afficher les services ou les ports ouverts dans le pare-feu du système.
Vous avez des compléments à apporter ou des questions ? Si oui, contactez-nous en utilisant le formulaire de commentaire ci-dessous.