J'ai passé quelque temps sur Google, mais je ne veux pas de solution miracle, je veux comprendre ce qui se passe. J'ai un bureau qui démarre sous Windows en 3 secondes et a démarré sous Ubuntu sous 10, mais avec Kubuntu 15.10, le démarrage prend plus de 40 secondes et la connexion à KDE est également très lente.
$ systemd-analyze critical-chain
graphical.target @9.961s
└─multi-user.target @9.961s
└─getty.target @9.961s
└─[email protected] @9.961s
└─rc-local.service @9.925s +3ms
└─network-online.target @9.924s
└─network.target @1.000s
└─wpa_supplicant.service @1.772s +338ms
└─basic.target @797ms
└─sockets.target @797ms
└─avahi-daemon.socket @797ms
└─sysinit.target @795ms
└─networking.service @740ms +54ms
└─apparmor.service @416ms +323ms
└─local-fs.target @409ms
└─local-fs-pre.target @409ms
└─systemd-remount-fs.service @401ms +6ms
└─system.slice @128ms
└─-.slice @128ms
Il est donc clair que le retard est dû à l'attente de la connexion. Beaucoup de questions ici:
Pourquoi une version de bureau d'Ubuntu bloquer mon démarrage et connexion en attente d'une connexion réseau? Ces services ne peuvent-ils pas démarrer après le démarrage? Je veux comprendre pourquoi tout le monde pense que c'est raisonnable. Même pour un serveur, ne serait-il pas préférable de le laisser démarrer puis de démarrer des services nécessitant un réseau?
Comment puis-je déboguer quels services bloquent sur le réseau? J'ai essayé $ systemctl show network-online.target
et cela me montre que la cible en ligne est recherchée par kerneloops.service
. Pourquoi ce service aurait-il besoin d'internet pour démarrer? En outre, cela semble être quelque chose qui viendrait standard sur l'installation. J'imagine que je peux le désactiver, mais je ne veux pas passer les 3 prochaines heures à le désactiver et le redémarrer un à un. Existe-t-il un meilleur moyen de voir tous les services qui bloquent sur network-online.target
? Puis-je différer ces services pour commencer la post-connexion au lieu de les désactiver?
C'est le moins important pour moi, mais sur un ordinateur de bureau avec une connexion Ethernet à un routeur, pourquoi met-il près de 10 secondes à se connecter?
J'ai (partiellement) résolu cela, alors je voulais poster comment au cas où quelqu'un avec des problèmes similaires le trouverait.
résumé - j'ai commenté la ligne After=network-online.target
dans /lib/systemd/system/rc-local.service.d/debian.conf
. Notez que cela peut casser les scripts rc.local qui dépendent du réseau.
Voici comment je l'ai trouvé. Premièrement, j'ai lu certaines ressources ici https://fedoramagazine.org/what-is-an-init-system/
De mon message ci-dessus, je savais que network-online.target
était lent, et de googler, je savais que c'était ce qui attendait d'avoir une connexion réseau. J'ai exécuté systemctl list-dependencies network-online.target --before
pour déterminer quels services attendaient après le démarrage du réseau et j'ai constaté que rc-local.service
était présent. En outre, la cible graphique (qui, à mon avis, est ce qui fait apparaître l'écran de connexion) dépend de rc-local.service
. J'ai lancé systemctl cat rc-local.service
et j'ai vu que Debian avait ajouté la dépendance After
en ligne, quelques informations supplémentaires ici: bug: https://bugs.launchpad.net/ubuntu/+source/systemd/+ bug/1451797
Je pense que cela n’est pas dangereux, tant que vous n’avez rien dans rc.local qui nécessite un réseau, ce qui devrait être le cas pour la plupart des non normaux. -server installe.
Maintenant, mon système "démarre" en 3 secondes environ, mais il me faut beaucoup de temps pour me connecter après avoir saisi mon mot de passe;