qu'entendez-vous par activé? Vous voulez dire des services qui fonctionnent?
Gen
7
Activer un service avec @Gen est très différent de le démarrer. Voir man systemctl.
Jos
Fascinant. La réponse la plus basse est la réponse la plus "correcte", même si ce n'est clairement pas la meilleure. Cette excellente question (et ses réponses) est un exemple intéressant de la manière dont systemd viole les principes de conception anciens et brillants d'Unix & Co. / systemctl peut faire exactement ce qu’il veut (la plupart des utilisateurs expérimentés considéreront que c’est trop lourd). Je commence à voir plus clairement pourquoi Linus Torvalds est si véhément critique envers systemd.
BISI
Réponses:
412
systemctl list-unit-files | grep enabledlistera tous ceux activés .
Si vous voulez ceux qui sont en cours d' exécution , vous avez besoin systemctl | grep running.
Utilisez celui que vous cherchez. Activé ne signifie pas qu'il est en cours d'exécution. Et courir ne veut pas dire que c'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 va démarrer.
En cours d'exécution signifie qu'il fonctionne actuellement, mais s'il n'est pas activé, il ne redémarrera pas au redémarrage.
ennuyeux de devoir utiliser un outil externe (grep) pour montrer cette information vitale. Mais merci de nous avoir montré le chemin :)
Felipe Alvarez
34
@ FelipeAlvarez Correct. Mais c'est comme ça que Linux fonctionne. Beaucoup de petits binaires qui fonctionnent bien les uns avec les autres. systemctl fait ce qui est demandé, il liste les services. Il n'y a pas de commande de filtrage intégrée à systemctl car grep existe déjà et peut le faire avec n'importe quelle sortie de programme. C'est comme ça que ça a toujours été :)
Dorian
3
Je suis d'accord et il devrait en être ainsi. Mais systemd essaie déjà de faire Tellement beaucoup que je me demande pourquoi il ne peut pas lister les services activés?
Felipe Alvarez
5
systemctl | grep runningne liste rien pour moi! Même si quelque chose est en cours d’exécution, son statut ne enabled, disabled, masked, static
contient
27
Plus simple:systemctl list-unit-files --state=running
Will
93
man systemctl États:
--state=
L'argument doit être une liste d'unités , ou d' états LOAD, séparés par des virgules . Lors de la liste des unités, affichez uniquement celles qui se trouvent dans les états spécifiés. Utilisez pour afficher uniquement les unités en échec.SUBACTIVE--state=failed
Explication:
LOAD: Indique si la définition de l'unité a été chargée correctement. ACTIVE: L'état d'activation de l'unité de haut niveau, c'est-à-dire la généralisation de SUB. SUB: État d'activation d'unité de bas niveau, les valeurs dépendent du type d'unité.
Bien que vous puissiez également l'utiliser pour afficher uniquement les enabledunités avec:
systemctl list-unit-files --state=enabled
S'il s'agit d'une unité, enabledcela signifie que le système la démarrera au démarrage. Bien que définir quelque chose enabledne le fasse pas start, vous devrez le faire manuellement ou redémarrer le système après l'avoir configuré enabled.
Pour activer et démarrer en même temps:systemctl enable --now ...
Aurélien Ooms le
1
--state=enabledn'a aucun effet sur la version 215 de Systemd (sur Raspbian 8 Jessie), mais fonctionne sur la version de Systemd 229 (sur Ubuntu 16.04.03 Xenial).
MPB
@mpb: Pourtant, cela fonctionne parfaitement sur la version 235 d'Arch Linux.
64
Pour lister tous les systemdservices qui sont dans state=activeetsub=running
man systemctl
.Réponses:
systemctl list-unit-files | grep enabled
listera tous ceux activés .Si vous voulez ceux qui sont en cours d' exécution , vous avez besoin
systemctl | grep running
.Utilisez celui que vous cherchez. Activé ne signifie pas qu'il est en cours d'exécution. Et courir ne veut pas dire que c'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 va démarrer.
En cours d'exécution signifie qu'il fonctionne actuellement, mais s'il n'est pas activé, il ne redémarrera pas au redémarrage.
la source
systemctl | grep running
ne liste rien pour moi! Même si quelque chose est en cours d’exécution, son statut neenabled, disabled, masked, static
systemctl list-unit-files --state=running
man systemctl
États:Explication:
LOAD
: Indique si la définition de l'unité a été chargée correctement.ACTIVE
: L'état d'activation de l'unité de haut niveau, c'est-à-dire la généralisation deSUB
.SUB
: État d'activation d'unité de bas niveau, les valeurs dépendent du type d'unité.Bien que vous puissiez également l'utiliser pour afficher uniquement les
enabled
unités avec:S'il s'agit d'une unité,
enabled
cela signifie que le système la démarrera au démarrage. Bien que définir quelque choseenabled
ne le fasse passtart
, vous devrez le faire manuellement ou redémarrer le système après l'avoir configuréenabled
.la source
systemctl enable --now ...
--state=enabled
n'a aucun effet sur la version 215 de Systemd (sur Raspbian 8 Jessie), mais fonctionne sur la version de Systemd 229 (sur Ubuntu 16.04.03 Xenial).Pour lister tous les
systemd
services qui sont dansstate=active
etsub=running
Pour lister tous les
systemd
serices qui sont dansstate=active
et sous en cours ou sortisla source
Pour voir les services «activés», y compris ceux qui sont encore en cours d’exécution:
Pour voir tous les services en cours d’exécution:
la source
sshd
contressh
etsyslog
contrersyslog
.Aperçu général de tous les services actifs et en échec:
la source