Comment répertorier le service avec Systemd

Comment répertorier le service avec Systemd
Cet article pourrait être une courte commande mais l'impression résultante est très longue.

La commande de vidage

Si quelqu'un vous demande d'afficher toute la configuration de votre système, utilisez la commande de vidage.

$ systemd --dump-configuration-items

Le fichier couvre toutes les unités que vous avez sur le système. Une fois qu'un développeur a ce fichier disponible, la personne passera par ce que vous avez et essaiera de trouver les problèmes auxquels vous êtes confronté. Sur et fait. Cependant, vous ne liriez pas cet article si vous vouliez laisser quelqu'un d'autre faire tout. Laissez-nous voir ce que vous pouvez faire avec un service à la fois et apprendre quelques astuces pour filtrer vos résultats.

La hiérarchie de Systemd

Pour devenir efficace, vous devez vous rendre compte que, au sein de Systemd, vous avez une hiérarchie et vous pouvez définir chaque service pour dépendre et / ou attendre d'autres services. Les différentes façons de le faire sont évidentes dans les fichiers de service. Les différentes déclarations que vous avez sont «désire», «requises», «avant» et «après». Pour une analyse efficace, vous pouvez les utiliser pour voir si votre unité est en baisse en raison de dépendances. Vous pouvez ensuite retracer à l'endroit où se trouve le problème sous-jacent. Voici un exmample de ceci.

$ SystemCTL List-dépendances - avant XPRA.service

L'impression montre les autres unités que XPRA.Le service s'appuie sur. Dans ce cas, les autres unités sont actives, donc nous avons besoin de se concentrer sur les raisons pour lesquelles l'unité elle-même est brisée. L'exemple manquait un fichier de certificat.

L'utilisation la plus importante de ceci est d'étudier si votre service manque de dépendances, utilisez la commande de cette façon.

$ Systemctl List-Dépendances Xringd

Le résultat est une longue liste, commodément organisée dans un arbre et montrant tous les services comme vert ou rouge si quelque chose ne va pas. Vous pouvez également voir les dépendances dans le fichier des services. Ouvrez le fichier à l'aide de votre éditeur préféré ou utilisez SystemCTL, qui ouvrira le fichier avec l'éditeur par défaut.

Listing des services actifs

Lorsque vous souhaitez enquêter sur un système, vous devrez savoir comment les unités s'adaptent. Pour ce faire, vous avez un certain nombre d'options pour imprimer les détails. Vous pouvez énumérer quels systèmes sont occupés, échoué et ainsi de suite. Plus important encore, vous pouvez énumérer la façon dont ils sont assemblés, quelle unité, service, etc. L'unité actuelle dépend de. La commande principale pour ce faire est SystemCTL, les options sont utiles pour restreindre votre problème spécifique.

Pour utiliser correctement SystemCTL, examinez attentivement les options de la commande. Il existe des options pour choisir exactement ce dont vous avez besoin, en particulier concernant l'état de tous les services. Ici, nous recherchons des services qui ont des problèmes.

$ SystemCTL List-Unit-Files --Type = Service

Cette liste est également longue et vous devez faire défiler tous les services pour trouver ce que vous recherchez. Avec quelques paramètres supplémentaires, vous pouvez filtrer pour un spécifique ou ceux qui sont désactivés. La commande ci-dessous trouvera toutes les unités masquées.

$ SystemCTL List-Unit-Files --Type = Service --State = Masked

Les services masqués sont bloqués afin que d'autres services ne puissent pas les démarrer, même si l'autre service en a besoin. Cela peut être utilisé pour assurer que vous n'avez pas de services contradictoires en cours d'exécution. Généralement, de nombreux services sont masqués par votre gestionnaire de packages lorsque vous supprimez le package. Vous pouvez supprimer complètement le fichier de service si vous le souhaitez après avoir supprimé un service. Il est également possible qu'il arrête beaucoup de services que vous voulez, alors assurez-vous de savoir si vous avez besoin des services masqués.

Certains services sont masqués par des processus et vous n'avez pas toujours l'intention que le service soit masqué. Lorsque cela est arrivé à votre système, la première action à prendre est de démasquer à l'aide de SystemCTL. Cependant, ce n'est pas toujours possible, vous devez donc enlever le lien dans le répertoire approprié. Dans la plupart des systèmes, ce sera lib / systemd / système. Avant de le faire, vérifiez que le fichier est en fait un lien vers / dev / null.

$ ls -l lib / systemd / système> | grep null

Lorsque vous êtes certain que vous souhaitez supprimer ce lien, supprimez-le avec RM ou Unlink.

$ rm / lib / systemd / système / udisks2.service

Maintenant que vous savez comment le faire, écoutez cet avertissement: il est souvent nécessaire d'avoir ce lien là-dedans. Prenez LVM2 à titre d'exemple, il est masqué de l'opération afin qu'il n'interfère pas avec le nouveau système, où LVM2 est livré comme de nombreux petits services. Voir le résultat de:

$ systemctl status lvm2 *

La suppression du lien peut faire des ravages sur votre système car LVM2 lui-même en a besoin pour éviter les conflits. Ce n'est qu'un exemple, alors faites attention avant de passer à autre chose.

Conclusion

Lorsque vous souhaitez répertorier les services dans Systemd, vous devez d'abord réfléchir à ce que vous recherchez dans votre quête. Cherchez-vous un service dont vous avez besoin ou voyez-vous que vous avez trop de services. Quoi qu'il en soit, vous devez adapter votre requête à vos besoins particuliers. Systemd a l'air déroutant au début, mais lorsque vous regardez de plus près, tout utilise un moyen simple d'unifier le démarrage afin que les services puissent démarrer en parallèle où le système en a besoin tout en pouvant que chaque service attende le service spécifique sur lequel ils dépendent.