it-swarm.com.de

Xubuntu 16.04 ttyname failed Unpassender ioctl für das Gerät

Ich muss Xubuntu als Root-Benutzer für ein eigenständiges Demosystem starten.

Unabhängig davon, ob ich die automatische Anmeldefunktion von lightdm aus verwende oder mich bei Aufforderung über "Andere"> "root" anmelde, erhalte ich immer die folgende Antwort:

Error found when loading /root/.profile
mesg: ttyname failed: Inappropriate ioctl for device
As result the session will not be configured correctly.
You should fix the problem as soon as feasible.

enter image description here

Nachdem das Popup-Feld oben deaktiviert wurde, verhält sich das System erwartungsgemäß mit dem ROOT-Benutzer.

Hier sind die Inhalte von /etc/lightdm/lightdm.conf:

[Seat:*]
autologin-guest=false 
autologin-user=root
autologin-user-timeout=0

Ich habe andere ähnliche Probleme im Zusammenhang mit Vagrind online gesehen und festgestellt, dass die Probleme mit einigen der neuesten Updates behoben wurden, aber dies scheint immer noch auf Xubuntu 16.04 zu geschehen

https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/1584488

Wie `ttyname failed: Unangemessenes ioctl für device` in Vagrant?

In den meisten Foren wird angegeben, dass diese Nachricht fehlerhaft ist und nicht angezeigt werden sollte. Gibt es eine Möglichkeit, Xubuntu automatisch als Root zu starten und gleichzeitig dieses fehlerhafte Popup zu vermeiden?

6
boyashley

Die ultimative Ursache ist, dass Xubuntu offenbar nicht erwartet hat, dass jemand eine grafische Anmeldung beim Root-Konto vornimmt, sodass die .profile-Standarddatei in dieser Situation einen falschen Fehler erzeugt. Wenn Sie sich die letzte Zeile von /root/.profile ansehen, finden Sie:

mesg n || true

Dies soll verhindern, dass Programme wie talk auf Ihre Konsole schreiben. Dies ist besonders wichtig, wenn Sie sich über eine Textsitzung (su von xterm, ssh usw.) bei root angemeldet haben, da diese Meldungen den Bildschirm überladen können.

Das || true-Bit soll verhindern, dass das Shell-Skript beendet wird, wenn mesg fehlschlägt (wie hier). Dies hindert es jedoch nicht daran, Fehlermeldungen zu generieren, wenn es fehlschlägt, wie Sie sehen.

Die Ursache des Problems liegt darin, dass die Zeile in .profile jedes Mal ausgeführt wird, wenn Bash ausgeführt wird, auch wenn sie aus einer Sitzung ohne tty-Gerät ausgeführt wird (wie in den ersten Teilen einer grafischen Anmeldung) der Fehler. Es ist harmlos, da mesg in einer Sitzung ohne TTY ohnehin bedeutungslos wäre, aber der Desktop weiß das nicht und zeigt die Meldung an.

Eine Lösung (als Kommentar in einer Frage, auf die Sie verwiesen haben , ist das Ändern der Zeile, damit nicht versucht wird, mesg aufzurufen, wenn kein TTY vorhanden ist :

tty -s && mesg n || true

Dies weist es an, nicht zu versuchen, mesg aufzurufen, wenn kein TTY vorhanden ist, sondern es weiterhin aufzurufen, wenn ein TTY vorhanden ist (z. B. von einem SSH-Login).

11
David C.