Il y a un service que je veux exécuter uniquement lorsqu'un autre service échoue ( [Unit] OnFailure=foo
), mais je ne veux pas que ce service ( foo
) démarre automatiquement au démarrage. Une option est en cours d'exécution systemctl disable foo
, mais je cherche une autre façon.
Contexte: Je crée une image de système d'exploitation et je ne veux pas avoir à démarrer la machine, exécuter cette commande ( systemctl disable foo
), puis l'arrêter avant de déclarer mon image finale.
systemctl enable
fonctionne en manipulant des liens symboliques dans/etc/systemd/system/
(pour les démons système). Lorsque vous êtesenable
un service, il examine lesWantedBy
lignes de la[Install]
section et affiche les liens symboliques dans ces.wants
répertoires.systemctl disable
fait le contraire.Vous pouvez simplement supprimer ces liens symboliques - faire cela à la main équivaut à utiliser
systemctl disable
.la source
Vous pouvez utiliser
systemctl start ServiceName.service
etsystemctl stop Service.Name.service
pour démarrer et arrêter un service respectivement. Contrairement àsystemctl enable ...
etsystemctl disable ...
, les commandes de démarrage et d'arrêt ne durent que pour la session en cours. Par conséquent, lorsque vous redémarrez la machine, les modifications ne sont pas enregistrées.la source