Der von Ihnen beschriebene Fehler kann zweierlei bedeuten:
Sie dokumentiert ein bekanntes Rennen in xenstore
Der psuedo TTY, der benötigt wird, um sich mit der Konsole einer Domäne zu verbinden, ist in xenstore an mehreren Stellen gespeichert. Der Xen-Konsolen-Client überwacht diesen Wert im Stil von inotify, damit er sich erneut mit der Konsole verbinden kann, wenn sich der Backing-Dateideskriptor ändert. Es dauert jedoch einige Sekunden, bis diese Informationen in xenstore ab dem Zeitpunkt der erstmaligen Erstellung der Domäne aufgefüllt werden.
Wenn Sie die Ausgabe von xm info posten, wäre es einfach zu sehen, ob es sich um eine bekannte Rasse handelt.
Das Backing-Psuedo-Terminal kann nicht erstellt werden
Häufige Gründe dafür sind, dass /dev/pts nicht eingehängt ist. Wenn Sie xenstore-ls /local/domain/{domain_id}
nach dem Start der Domäne ohne die -c
sehen Sie den Inhalt des Speichers für diese Domäne. Suchen Sie nach der Zeile (in der Nähe des unteren Randes), in der steht
tty="/dev/pts/{pty}"
Überprüfen Sie, ob das pty tatsächlich existiert.
Der xen-Konsolendaemon verwendet zwei tatsächliche Dateideskriptoren, um dies zu ermöglichen. Der erste ist ein Psuedo-File-Deskriptor (den er über xs_fileno() erhält) für diese spezifische Information im Knoten, so dass er mit poll() feststellen kann, ob sich diese Information ändert. Der zweite ist ein echter FD, der von open()
(ja, O_NONBLOCK wird übergeben), die tatsächlich auf dem psuedo tty liest/schreibt.
Es sieht so aus, als ob es nicht einmal den psuedo FD von xenstore findet, was bedeutet, dass das unterstützende pty wahrscheinlich existenziell herausgefordert ist.
0 Stimmen
Um eine brauchbare Antwort zu erhalten, müssen Sie weitere nützliche Informationen angeben (alle Protokollmeldungen, den tatsächlichen Inhalt von startos.xm usw.).