Question Comment lister tous les services activés depuis systemctl?


Comment puis-je tout lister enabled services de systemctl?

je connais systmctl liste tous les services mais je voudrais obtenir seulement le enabled une fois que.


137
2017-07-05 18:17


origine


que voulez-vous dire par activé? Vous voulez dire des services en cours d'exécution? - Gen
@Gen permettant un service est assez différent de le démarrer. Voir man systemctl. - Jos
Juste pour que vous sachiez, j'ai mis à jour ma réponse.


Réponses:


systemctl list-unit-files | grep enabled listera tous activée ceux

Si vous voulez quels sont ceux qui sont actuellement fonctionnement, vous avez besoin systemctl | grep running.

Utilisez celui que vous recherchez. Activé, ne signifie pas qu'il est en cours d'exécution. Et courir ne veut pas dire qu'il est activé. Ce sont deux choses différentes.

Activé signifie que le système exécutera le service au prochain démarrage. Donc, si vous activez un service, vous devez toujours le démarrer manuellement ou le redémarrer et il démarrera.

En cours d'exécution signifie qu'il est en cours d'exécution, mais s'il n'est pas activé, il ne redémarrera pas lorsque vous redémarrerez.


203
2017-07-05 18:52



ennuyeux d'avoir à utiliser un outil externe (grep) pour afficher ces informations vitales. Mais merci de nous montrer le chemin :) - Felipe Alvarez
@FelipeAlvarez Correct. Mais c'est comme ça que fonctionne Linux. Beaucoup de petits binaires qui fonctionnent bien les uns avec les autres. systemctl fait ce qui est demandé, il répertorie les services. Il n'y a pas de commande de filtrage intégrée à systemctl car grep existe déjà et peut fonctionner correctement avec les sorties de n'importe quel programme. C'est comme ça que ça a toujours été :) - Dorian
Je suis d'accord et il devrait en être ainsi. Mais, systemd essaie déjà de faire tellement que je me demande pourquoi il ne peut pas lister les services activés? - Felipe Alvarez
systemctl | grep running ne m'énumère rien! Même si quelque chose est en cours d'exécution est seulement répertorié pour son statut comme: enabled, disabled, masked, static - Cirelli94
Plus simple: systemctl list-unit-files --state=running - Will


man systemctl États:

--state=

L'argument doit être une liste d'unités séparées par des virgules LOAD, SUB, ou ACTIVE États. Lorsque vous répertoriez les unités, affichez uniquement celles des états spécifiés. Utilisation --state=failed pour afficher uniquement les unités en panne.

Explication:

LOAD: Indique si la définition de l’unité a été correctement chargée.
ACTIVE: État d’activation de l’unité de haut niveau, c’est-à-dire généralisation de SUB.
SUB: L'état d'activation de l'unité inférieure, les valeurs dépendent du type d'unité.

Bien que vous puissiez aussi l'utiliser pour montrer uniquement enabled unités avec:

systemctl list-unit-files --state=enabled

Si une unité est enabled cela signifie que le système le démarrera au démarrage. Bien que mettre quelque chose à enabled ne fait pas réellement start vous devrez donc le faire manuellement, ou redémarrer le système après l'avoir défini sur enabled.


43
2017-07-05 18:58



Ne répond pas à la question active ! = enabled. - Reinier Post
@ReinierPost: Je ne peux pas m'empêcher que la page de manuel ne donne pas d'informations à ce sujet, j'ai fourni la meilleure réponse possible avec les informations que j'avais. Comme vous pouvez le voir, il y a une autre réponse qui est acceptée.
Je sais, mais il est faux (trompeur) de ne pas modifier une réponse erronée, et tout le monde semble le faire lorsque cette question est en cause (ce n’est pas le seul cas). - Reinier Post
Non, c'est une raison pour qualifier votre réponse. - Reinier Post
Pour activer et démarrer en même temps: systemctl enable --now ... - Aurélien Ooms


  1. Pour lister tous les systemd service qui sont en state=active et sub=running

    systemctl list-units --type=service --state=running
    
  2. Pour lister tous les systemd serice qui sont en state=active et sous soit en cours d'exécution ou a quitté

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

J'espère que cela résout le problème.


34
2017-09-14 03:59



Certainement une amélioration de la réponse acceptée. Merci! - smac89


Pour voir les services «activés», y compris ceux qui sont toujours en cours d'exécution / init, procédez comme suit:

systemctl list-unit-files --type service --state enabled,generated

Pour voir tous les services en cours d'exécution:

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

1
2017-07-30 16:51