web-dev-qa-db-fra.com

Comment écrire le service systemd pour assurer le démarrage après le service DNS?

Après la mise à niveau vers Kubuntu 19.04, je ne sais pas comment écrire un service pour qu'il puisse démarrer après l'initialisation du service DNS.

Dans ce passé, j'utilise simplement After=network.target, mais maintenant ça ne marche pas. J'ai aussi essayé After=network-online.target, mais pas de chance.

Je pense donc que le problème est systemd-resolved, comment pourrais-je résoudre ce problème?


mise à jour:

ERROR: getaddrinfo: Temporary failure in name resolution
ERROR: failed to resolve the provided hostname

Ce sont deux journaux associés. Je peux donc confirmer que le problème est lié au service DNS.

2
Sraw

Veuillez ajouter une dépendance dans votre fichier de service:

After=nss-lookup.target

Cela devrait garantir que la recherche d'hôte/nom est opérationnelle.

Plus de détails sont dans la documentation: https://www.freedesktop.org/software/systemd/man/systemd.special.html

nss-lookup.target

Une cible qui doit être utilisée comme point de synchronisation pour toutes les recherches de service de nom d'hôte/réseau. Notez que ceci est indépendant des recherches de nom d'utilisateur/groupe UNIX pour lesquelles nss-user-lookup.target doit être utilisé. Tous les services pour lesquels la disponibilité de la résolution complète des noms d'hôte/réseau est essentielle doivent être commandés après cette cible, mais ne pas les retirer. Systemd ajoute automatiquement les dépendances de type After = pour cette unité cible à toutes les unités de service de script d'initialisation SysV avec un LSB en-tête faisant référence à la fonction "$ named".

Pour attendre complètement le réseau, la documentation de systemd https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ vous demande d'ajouter à votre service:

After=network-online.target
Wants=network-online.target

et pour confirmer que le service "d'attente" correspondant est activé:

$ systemctl is-enabled NetworkManager-wait-online.service systemd-networkd-wait-online.service
disabled
enabled
2
user228505