Comment lister tous les services activés de systemctl?

Comment puis-je tout lister enabled services à partir de systemctl?

Je sais courir systemctl la commande à elle seule répertorie tous les services, mais je voudrais seulement obtenir le enabled ceux.

systemctl list-unit-files | grep enabled listera tout permettre ceux.

Si vous voulez lesquels sont actuellement exécuter, vous avez besoin de systemctl | grep running.

Utilisez celui que vous recherchez. Activé, ne signifie pas qu'il est en cours d'exécution. Et courir ne signifie pas 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 redémarrer et il démarrera.

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

man systemctl Unis:

--state=

L'argument doit être une liste d'unités séparées par des virgules LOAD, SUB, ou ACTIVE Unis. Lors de la liste des unités, n'affichez que celles dans les états spécifiés. Utiliser --state=failed pour afficher uniquement les unités ayant échoué.

Explication:

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

Bien que vous puissiez également l'utiliser pour afficher 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 fixant quelque chose à enabled ne fait pas aussi start vous devrez donc le faire manuellement ou redémarrer le système après l'avoir défini sur enabled.

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

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

Pour lister tous les systemd serice qui sont en state=active et sub en cours d'exécution ou sorti

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

Pour voir les services "activés", y compris ceux qui sont encore en cours d'exécution upstart/init:

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

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

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

Vue d'ensemble de tous les services actifs et défaillants:

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

Il existe une bonne application graphique appelée Stacer où vous pouvez gérer tous les services.

enter image description here

Vérifiez son lien Github Stacer Github
Vérifiez également Web pour plus d'informations

En plus des réponses actuelles, j'utilise les éléments suivants pour obtenir uniquement les noms des services:

systemctl list-units --type=service --state=active,running | awk '/.*\.service/ {print $1}'

Plutôt que le format tabulaire, il est plus facile de diriger uniquement ces services vers un autre programme

@ Gen activer un service est très différent de le démarrer. Voir ’ man systemctl`.

Fascinant. La réponse la moins bien notée est la réponse la plus “correcte”, même si ce n’est clairement pas la meilleure réponse. Cette excellente question (et ses réponses) est un exemple intéressant de la façon dont systemd viole les principes de conception de longue date (et brillants) d’Unix & Co. @FelipeAlvarez se plaint que la réponse la plus acceptée suppose que systemd suit la philosophie de conception unix, mais systemd / systemctl peut faire exactement ce qu’il veut (les utilisateurs les plus expérimentés considéreront simplement ce gonflement complet). Je commence à voir plus clairement pourquoi Linus Torvalds critique si violemment systemd.

qu’entendez-vous par activé? Vous voulez dire des services en cours d’exécution?