Un système Linux fournit une variété de services système (tels que la gestion des processus, la connexion, syslog, cron, etc.) et des services réseau (tels que connexion à distance, e-mail, imprimantes, hébergement Web, stockage de données, transfert de fichiers, résolution de nom de domaine (utilisant DNS), attribution dadresse IP dynamique (utilisant DHCP), et bien plus).
Techniquement, un service est un processus ou un groupe de processus (communément appelés démons) sexécutant en continu en arrière-plan, attendant que des requêtes arrivent (en particulier des 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.), généralement via un gestionnaire de processus ou de services. La plupart des distributions Linux modernes, sinon toutes, utilisent maintenant le même gestionnaire de processus: systemd.
A lire aussi: Lhistoire derrière init et systemd: Pourquoi init devait être remplacé par systemd dans Linux
Systemd est un gestionnaire de système et de service pour Linux; un remplacement instantané pour le processus dinitialisation, qui est compatible avec les scripts dinitialisation SysV et LSB et la commande systemctl est le principal outil de gestion de systemd.
Dans ce guide, nous montrerons comment lister tous les services en cours dexécution sous systemd sous Linux.
Liste des services en cours dexécution sous SystemD dans 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 dinformations sur les unités systemd), y compris les services, indiquant leur état (quils soient actifs ou non).
# systemctl
Pour répertorier tous les services chargés sur votre système (quils soient actifs, en cours dexécution, fermés ou en échec, utilisez la sous-commande list-units et --type
commutateur avec une valeur de service.
# systemctl list-units --type=serviceOR# systemctl --type=service
Et pour lister tous les services chargés mais actifs, en cours dexécution et ceux qui ont quitté, vous pouvez ajouter loption --state
avec une valeur dactif, comme suit.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Mais pour avoir un aperçu rapide de tous les services en cours dexécution (cest-à-dire tous les services chargés et en cours dexé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 dalias dans votre fichier ~ / .bashrc comme indiqué, pour linvoquer facilement.
# vim ~/.bashrc
Ensuite, ajoutez 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 la commande « running_services » pour afficher une liste de tous les services chargés et en cours dexécution sur votre serveur.
# running_services#use the Tab completion
En outre, un aspect important des services est le port quils utilisent. Pour déterminer le port sur lequel un processus démon écoute, vous pouvez utiliser les outils netstat ou ss comme indiqué.
Où lindicateur -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 dapplication) et -p
signifie afficher le nom de lapplication.
# netstat -ltup | grep zabbix_agentdOR# ss -ltup | grep zabbix_agentd
Le la cinquième colonne montre le socket: Local Address: Port. Dans ce cas, le processus zabbix_agentd écoute sur le port 10050.
Aussi, si votre serveur a un service de pare-feu en cours dexé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, à laide de la commande firewall-cmd ou ufw (selon les distributions Linux que vous utilisez) comme indiqué.
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status