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.
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