À propos de la commande 'who' et sa sortie sur '14 .04 TrustyTahr '

9

J'ai une question qui s'est posée dans mon esprit après la mise à niveau vers 14.04 TrustyTahr à partir de 12.04 PrecisePangolin. La question concerne la commande «who» et sa sortie. Sur les éditions précédentes d'Ubuntu, la sortie de la commande who lirait quel tty était utilisé pour se connecter et lancer le système et lightdm, par exemple:

:~$ who
geo      tty7     thedate (:0)
geo      pts/n    thedate (:0.0)

Mais le 14.04 TrustyTahr, lorsque j'exécute la commande who, ma sortie donne:

:~$ who
geo      :0       thedate (:0)
geo      pts/n    thedate (:0.0)

Sur les deux éditions, le transfert vt7 se produit dans / boot, et sur TrustyTahr ma variable XDG_VTNR est 7 lorsque je me connecte via lightdm; mais tty7, ni vt7 est imprimé dans le fichier utmp. Cela m'a ennuyé pendant des mois, j'ai finalement écrit un programme c ++, qui incorpore la fonction popen, en complément de la commande who pour que la commande who affiche le XDG_VTNR actuel avec un coefficient tty par exemple:

geo      tty7         2015-06-04 20:54 (:0)
geo      pts/0        2015-06-04 20:54 (:0.0)

Néanmoins, pourquoi cela a-t-il changé? Et le mien est le seul comme ça, parce que je l'ai téléchargé vers le mois de mai de l'année dernière, et j'aurais peut-être obtenu un iso superposé ou quelque chose, chaque fois que je lance la commande qui me fait penser à cette chanson de Beastie Boys: Sabotage (jk ce n'est pas le mauvais).

oOpSgEo
la source
Je suis le 14.04. Tout à l'heure, je suis allé sur tty1 et j'ai couru startx $(which gnome-shell). La sortie de whotty1 et de 0 signalés. Je suppose que votre machine particulière rencontre un bug quelconque
Sergiy Kolodyazhnyy
mettre à jour la question avec $ who --version
j0h

Réponses:

2

Essayez de mettre à niveau le package qui contient la whocommande; même si vous avez utilisé une étrange version de l'ISO pour effectuer l'installation, une mise à jour devrait la remplacer:

Découvrez ce que possède le package who:

which who    # find out where 'who' binary is
dpkg -S /path/to/who

Alors:

apt-get update
apt-get install <package name from dpkg -S command>

Si cela ne fonctionne toujours pas, essayez un autre shell sans environnement (pour vous débarrasser des variables d'environnement bancales, des configurations, des fichiers indésirables spécifiques à bash, etc.):

env -i /bin/dash
$ who

Si cela fonctionne dans un shell nu, le problème est probablement une définition d'alias étrange dans un bashrc, ou quelque chose de similaire.

Aussi, ça who --allmarche?

Felix
la source