J'ai besoin de lancer Xubuntu en tant qu'utilisateur root pour un système de démonstration autonome.
Que j'utilise la fonctionnalité de connexion automatique de lightdm
ou que je me connecte via "Autre"> "racine" à l'invite, j'obtiens toujours la réponse suivante:
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.
Après avoir effacé la boîte ci-dessus, le système fonctionne comme prévu avec l'utilisateur ROOT.
Voici le contenu de /etc/lightdm/lightdm.conf
:
[Seat:*]
autologin-guest=false
autologin-user=root
autologin-user-timeout=0
J'ai vu d'autres problèmes similaires en ligne liés à Vagrind, et ces problèmes ont été résolus avec certaines des dernières mises à jour, mais cela semble toujours se produire sur Xubuntu 16.04.
https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/1584488
Comment résoudre `ttyname a échoué: ioctl inapproprié pour device` dans Vagrant?
La plupart des forums déclarent que ce message est erroné et ne doit pas être affiché. Est-il possible de lancer Xubuntu automatiquement en tant que root tout en évitant ce popup erroné?
La cause ultime est que Xubuntu ne s'attendait manifestement pas à ce que quiconque effectue une connexion graphique au compte root. Son fichier .profile
par défaut génère une erreur parasite dans cette situation. Si vous regardez la dernière ligne de /root/.profile, vous trouverez:
mesg n || true
Cela empêche les programmes comme talk
d'écrire sur votre console. Ceci est particulièrement important si vous vous êtes connecté à la racine via une session de texte (sous xterm, ssh, etc.), car ces messages peuvent encombrer l'écran.
Le bit || true
permet d'empêcher le script Shell de se terminer si mesg échoue (comme c'est le cas ici), mais cela ne l'empêche pas de générer des messages d'erreur en cas d'échec, ce que vous voyez.
Le problème vient du fait qu’en mettant la ligne dans .profile, elle est exécutée à chaque fois que bash est exécuté, même lorsqu’il est exécuté à partir d’une session sans périphérique tty (comme lors des premières parties d’une connexion graphique), de sorte que vous voyez. l'erreur. C'est inoffensif, car mesg
n'aurait aucun sens s'il était exécuté à partir d'une session sans TTY, mais le bureau ne le sait pas et affiche le message.
Une solution (comme un commentaire dans une question à laquelle vous avez fait référence a dit) est de changer la ligne afin d'éviter d'appeler mesg
lorsqu'il n'y a pas de téléscripteur. :
tty -s && mesg n || true
Cela lui dit de ne pas essayer d'appeler mesg
quand il n'y a pas de téléscripteur, mais l'appellera quand même s'il y a un téléscripteur (par exemple à partir d'une connexion SSH).