Affichage des messages de la console système dans l'interface graphique

10

Sous Linux, est-il possible d'afficher les messages d'erreur qui s'affichent sur le terminal en mode texte en mode GUI, au lieu d'avoir à appuyer sur Ctrl+ Alt+ F1ou Ctrl+ Alt+ F2pour afficher les messages à chaque fois, puis de revenir en mode GUI en appuyant sur Ctrl+ Alt+ F7?

Je vous remercie.

Geai
la source
J'ai précisé le sujet de la question. Bash n'est qu'un des nombreux shells différents pour Linux. Les messages sont envoyés à l'entité dans laquelle (par exemple) bash s'exécute, pas au shell lui-même.
fschmitt
Ne pouvez-vous pas simplement accéder à / var / log / "blah" et lire le journal correspondant? En supposant qu'il soit sur le processus de démarrage, vous pouvez consulter /var/log/boot.log
vfbsilva

Réponses:

6

Vous pouvez voir le contenu actuel de la console texte /dev/tty1dans le fichier /dev/vcs1(où 1 est le nombre en Ctrl+ Alt+ F1). (Si vous essayez de lire /dev/tty1, vous serez en concurrence avec le programme qui y est exécuté pour la saisie au clavier.) Les périphériques vcs ne sont normalement lisibles que par root. Vous obtenez un instantané; il n'y a aucun moyen pratique d'obtenir du contenu tel qu'il vient.

Le programme ttysnoop vous permet de surveiller le trafic sur une console depuis un autre terminal (y compris un terminal X). Mais c'est quelque chose que vous devez configurer à l'avance.


Au lieu d'essayer d'attraper les messages lorsqu'ils ont été sortis sur la console texte, arrangez-vous pour que les messages soient dirigés vers un emplacement différent. La plupart de ces sorties de console se retrouveront dans les journaux système, dans les fichiers sous /var/log. Sous X (c'est-à-dire en mode graphique), vous pouvez intercepter ces messages xconsole, qui font partie de la distribution X standard.

Si xconsolene montre pas les messages que vous souhaitez, modifiez votre question pour mentionner d'où proviennent ces messages.

Si vous ne parvenez pas xconsoleà afficher de message, modifiez votre question pour inclure votre système d'exploitation exact, toutes les étapes de configuration que vous avez prises et tout message d'erreur que vous avez vu.


Si les messages ne proviennent pas de la fonction de journalisation du système, mais d'un programme que vous avez démarré dans la console en mode texte, vous serez mieux servi en utilisant la redirection . Arrangez-vous pour démarrer le programme comme ceci:

mv ~/.myprogram.log ~/.myprogram.log.old
myprogram --with arguments 2>&1 >~/.myprogram.log

Ensuite, vous pouvez lire la sortie du programme de n'importe où en consultant le fichier ~/.myprogram.log. En particulier, pour voir le fichier croître en temps réel, exécutez

tail -n +1 -f ~/.myprogram.log

Si le programme est démarré par vos scripts de démarrage X, il serait préférable de rediriger la sortie de la séquence de démarrage X entière vers un fichier. En fait, de nombreuses distributions le font automatiquement. Si vous utilisez un fichier .xinitrcou .xsession, placez la ligne suivante près du début du fichier pour rediriger la sortie des programmes suivants:

exec >"$HOME/.xsession-$DISPLAY.log" 2>&
Gilles 'SO- arrête d'être méchant'
la source
Je vous remercie. J'ai simplement fait su -c "cat / dev / vcs1" et cela a fonctionné. Et comme vous l'avez mentionné, c'était un simple instantané des messages sur la console, mais c'était tout ce dont j'avais besoin.
Jay
@Jay: maintenant que j'ai vu vos commentaires, j'ai une réponse différente, à savoir que vous devez utiliser la redirection dans vos scripts de démarrage X. Je laisse les autres possibilités car elles peuvent être utiles à d'autres personnes parcourant l'archive des questions.
Gilles 'SO- arrête d'être méchant'
1

Vous pouvez utiliser xconsole pour cela. De sa description:

Le programme xconsole affiche des messages qui sont généralement envoyés à / dev / console.

Selon la configuration choisie par votre distribution, vous devrez peut-être la démarrer en tant que root (c'est-à-dire avec sudo xconsolerespectivement su -c xconsole),

fschmitt
la source
Merci. Mais existe-t-il un moyen d'afficher les messages qui sont déjà là sur la console après avoir démarré X? comme par exemple, dans ma situation .. J'ai écrit un script python pour changer aléatoirement le fond d'écran. Et je l'ai configuré pour que chaque fois que je démarre X, le script soit appelé. Mais le script ne fonctionne pas comme je le souhaite et j'obtiens quelques messages d'erreur sur la console. Lorsque je démarre xconsole après être entré dans X, je ne peux voir que les messages envoyés à la console à partir de ce moment. La page de manuel de xconsole ne dit rien sur l'affichage des messages qui sont déjà là sur la console
Jay
Vous pouvez dans n'importe quelle fenêtre de terminal (par exemple xterm) afficher les messages imprimés lors du démarrage avec la commande dmesg.
fschmitt
dmesg affiche uniquement les messages qui apparaissent au démarrage. Je ne pense pas qu'il montre les messages qui apparaissent sur la console après avoir démarré et me connecter et faire "startx" par exemple ..
Jay
1

As-tu essayé xterm -C? Cela fonctionne sur Ubuntu 17.04.

Erik Bennett
la source
1
Cela semble digne de commentaires, mais si Erik ajoutait du contexte, cela semble une réponse plausible / possible: "-C Cette option indique que cette fenêtre devrait recevoir la sortie de la console. Ce n'est pas pris en charge sur tous les systèmes. ...."
Jeff Schaller
Points justes. La prochaine fois, je ferai un commentaire. Désolé pour tout inconvénient.
Erik Bennett
-4

Si vous voulez voir les messages de la console, vous pouvez mettre à la fin de /etc/rc.local,

sleep 60
Jose
la source
2
L'OP veut voir les messages après avoir chargé l'interface graphique. Cela fera simplement attendre le système une minute avant de le charger, ce n'est donc pas une solution.
terdon