GNU/Linux >> Tutoriels Linux >  >> Linux

Comment répertorier les services sous Linux

En tant qu'administrateur système, vous avez probablement affaire à de nombreux services tous les jours.

Sous Linux, services sont utilisés à de nombreuses fins différentes.

Ils peuvent être utilisés pour démarrer un serveur SSH sur votre machine ou ils peuvent effectuer certaines opérations à une heure ou un jour spécifique.

Que vous utilisiez une distribution basée sur Debian ou une distribution RedHat, l'interrogation des services est très similaire.

Cependant, compte tenu de la distribution que vous utilisez, et plus précisément du système d'initialisation (init ou systemd), vous devrez peut-être utiliser des commandes différentes.

Dans ce didacticiel, vous apprendrez comment vous pouvez, en fonction de votre administrateur système, répertorier tous les services sur votre machine Linux.

Déterminer le gestionnaire de système utilisé

Comme vous le savez probablement, les distributions récentes utilisent le gestionnaire système Systemd .

Cependant, cela n'a pas toujours été le cas :dans le passé, la plupart des distributions utilisaient le gestionnaire de système SysVinit.

Par conséquent, il existe en réalité deux façons de gérer vos services sur un système Linux.

Avant d'apprendre les commandes pour répertorier les services, vous devez connaître le gestionnaire de système que vous utilisez actuellement.

Pour déterminer votre gestionnaire de système actuel, le moyen le plus simple consiste à utiliser la commande "pstree" et à vérifier le premier processus jamais exécuté sur votre système.

$ pstree | head -n 5

Si vous voyez "systemd ", cela signifie évidemment que vous utilisez actuellement systemd. Cependant, si vous voyez "init ", cela signifie que vous utilisez SysVinit.

Sur Ubuntu 14.04, qui utilise toujours l'ancien système d'initialisation, votre "pstree" peut ressembler à ceci.

Répertorier les services à l'aide de systemctl

La façon la plus simple de répertorier les services sous Linux, lorsque vous êtes sur un système systemd, est d'utiliser la commande « systemctl » suivie de « list-units ». Vous pouvez spécifier l'option "–type=service" afin de limiter les résultats aux services uniquement.

$ systemctl list-units --type=service

Par défaut, cette commande vous montrera uniquement les services qui sont actifs ou les services qui ont échoué sur votre système. Dans la capture d'écran ci-dessus, la plupart des services sont actifs mais celui de logrotate (surligné en rouge) est marqué comme ayant échoué.

Génial, vous avez appris comment vous pouvez facilement répertorier vos services sur un serveur Linux.

Cependant, comme vous l'avez peut-être remarqué, vous n'aviez pas accès à tous les services :qu'en est-il des services inactifs ? Qu'en est-il des services qui n'ont pas été chargés par systemd au démarrage ?

Répertorier tous les services sur Linux à l'aide d'unités de liste

Afin de lister tous les services, c'est-à-dire actifs et inactifs, vous devez utiliser la commande "systemctl list-units" suivie de l'option "–all".

De même, vous pouvez limiter les résultats aux services uniquement en utilisant le filtre de type.

$ systemctl list-units --type=service --all

Comme vous pouvez le voir, les services inactifs sont également répertoriés, ce qui pourrait être pratique si vous venez d'écrire votre service et de vous en occuper dans la liste.

Dans ce cas, seuls les services chargés sont répertoriés. Au démarrage, systemd charge les fichiers d'unité et il peut choisir de ne pas charger un service spécifique s'il constate qu'il ne sera pas utilisé par le système.

Par conséquent, il existe une réelle différence entre "chargé " et " installé " prestations de service. Les services "installés" signifient que les fichiers d'unité peuvent être trouvés dans les chemins correspondants.

Répertorier les services par état

Dans certains cas, vous ne serez peut-être intéressé que par les services qui ont échoué. Pour cela, vous pouvez spécifier l'état que vous recherchez en option de la commande systemctl.

$ systemctl list-units --state=<state>

$ systemctl list-units --state=<state1>,<state2>

Où "état" peut être l'une des valeurs suivantes :active, inactive, activating, deactivating, failed, not-found ou dead.

Par exemple, si nous ne nous intéressons qu'aux services "en échec", nous allons lancer la commande suivante

$ systemctl list-units --state=failed

Répertorier tous les fichiers de service à l'aide de list-unit-files

Enfin, si vous êtes intéressé par "chargé ", "installé ", " désactivé " ainsi que "activé ” service files, il existe une autre commande qui pourrait être très pratique.

Afin de lister tous les fichiers de service disponibles, vous devez utiliser la commande "systemctl" suivie de "list-unit-files". Facultativement, vous pouvez spécifier le type à l'aide de l'option "–type=service".

$ systemctl list-unit-files --type=service

Alternativement, vous pouvez utiliser la commande "grep" afin de rechercher des chemins spécifiques sur votre système qui peuvent contenir des fichiers de service.

$ ls -l /etc/systemd/system /usr/lib/systemd/service | egrep .service$

Félicitations, vous avez appris comment répertorier les services si votre système utilise systemd !

Répertorier les services utilisant le service

La manière la plus simple de répertorier les services sous Linux, lorsque vous êtes sur un système d'initialisation SystemV, consiste à utiliser la commande "service" suivie de l'option "–status-all". De cette façon, une liste complète des services de votre système vous sera présentée.

$ service --status-all

Comme vous pouvez le constater, chaque service est répertorié précédé de symboles entre parenthèses. Ces symboles signifient :

  • +  :signifie que le service est en cours d'exécution;
  •  :signifie que le service ne fonctionne pas du tout ;
  •  ? :signifie qu'Ubuntu n'était pas capable de dire si le service est en cours d'exécution ou non.

Alors pourquoi certains services peuvent-ils dire s'ils fonctionnent ou non, et d'autres non ?

Tout se résume à l'implémentation du script init. Dans certains scripts, comme le script udev par exemple, vous pouvez voir que le "statut ” la commande est implémentée.

Ce n'est pas le cas pour le "dns-clean ” script par exemple qui est la raison pour laquelle vous avez un point d'interrogation lorsque vous interrogez ce service.

Répertorier les services SysVinit dans les dossiers

Une autre façon de répertorier la liste actuelle des services consiste à utiliser la commande "ls" sur les dossiers contenant tous les scripts sur un système Linux, à savoir "/etc/init.d".

$ ls -l /etc/init.d/*

Conclusion

Dans ce tutoriel, vous avez appris comment vous pouvez répertorier facilement les services sur un système Linux que vous utilisiez systemd ou SysVinit.

Si vous souhaitez créer vos propres services, nous vous recommandons de consulter les ressources suivantes. Ils pourraient être très utiles pour y parvenir correctement.

  • Écrire un script de démarrage pour les systèmes init ;
  • Démarrage des services au démarrage à l'aide de systemd ;

Si vous êtes intéressé par l'administration système Linux , nous avons une section complète à ce sujet sur le site Web, alors assurez-vous de la consulter.


Linux
  1. Comment configurer la virtualisation sur Redhat Linux

  2. Comment définir ou modifier le nom d'hôte du système sous Linux

  3. Comment gérer et répertorier les services sous Linux

  4. Comment changer le nom d'hôte sous Linux

  5. Comment répertorier les services Systemd sous Linux

Comment vérifier tous les services en cours d'exécution sous Linux

Comment répertorier les services de démarrage au démarrage sous Linux

Comment répertorier les packages installés sous Linux

Comment répertorier les partitions de disque sous Linux

Comment répertorier les utilisateurs sous Linux

Comment lister les disques sous Linux