45 votes

systemctl, comment démasquer

root@gcomputer:~# systemctl status x11-common
 x11-common.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

J'ai essayé systemctl unmask x11-common y systemctl unmask x11-common.service mais cela n'a rien changé.

Comment le démasquer ?

52voto

Zanna Points 65764

Les commandes que vous utilisez sont tous deux corrects . Voir aussi le manuel .

Il semble que la unmask échoue lorsqu'il n'y a pas de fichier d'unité existant dans le système autre que le lien symbolique vers /dev/null . Si vous mask un service, ce qui crée un nouveau lien symbolique vers /dev/null en /etc/systemd/system où systemd recherche les fichiers unitaires à charger au démarrage. Dans ce cas, il n'y a pas de véritable fichier d'unité.

D'autres semblent avoir des problèmes similaires

x11-common.service a également été masqué sur mon système. Vous pouvez y remédier de la manière suivante :

Vérifiez d'abord que le fichier de l'unité est un lien symbolique vers /dev/null

file /lib/systemd/system/x11-common.service

il devrait revenir :

/lib/systemd/system/x11-common.service: symbolic link to /dev/null

Dans ce cas, supprimez-la

sudo rm /lib/systemd/system/x11-common.service

Puisque vous avez modifié un fichier d'unité, vous devez exécuter ceci :

sudo systemctl daemon-reload

Vérifier maintenant l'état :

systemctl status x11-common

s'il n'indique pas qu'il est chargé et qu'il fonctionne (si le cercle est toujours rouge), réinstallez le paquet :

sudo apt-get install --reinstall x11-common

et rechargez à nouveau le démon

sudo systemctl daemon-reload

et vérifier à nouveau le statut

systemctl status x11-common

Maintenant, il est vert et fonctionne :) Le service n'a pas de fichier d'unité systemd, mais systemd utilise heureusement le script pour lui dans /etc/init.d au lieu de cela.

2voto

Hossein Points 21

Suivez les étapes ci-dessous :

  1. systemctl edit systemd-hostnamed

    Ajoutez les 2 lignes ci-dessous puis quittez l'éditeur (n'oubliez pas d'enregistrer lorsque vous y êtes invité) :

    [Service]
    PrivateNetwork=no
  2. Cela créera un fichier override.conf avec les 2 lignes ci-dessus dans le répertoire :

    /etc/systemd/system/systemd-hostnamed.service.d/
  3. La mise à jour de systemd :

    systemctl daemon-reload
  4. Redémarrez ensuite le service :

    systemctl restart systemd-hostnamed

Vous devriez maintenant être en mesure d'exécuter hostnamectl sans qu'il soit suspendu.

2voto

Erik Hensema Points 21

Il se peut que votre service ait un fichier override vide, comme celui-ci :

 redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; masked; vendor preset: enabled)
  Drop-In: /etc/systemd/system/redis-server.service.d
           limit.conf

Vérifiez si limit.conf est un fichier vide. Si c'est le cas, supprimez-le. Le service doit ensuite être démasqué.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X