Melihat pesan konsol sistem dalam GUI

10

Di Linux, apakah mungkin untuk melihat pesan kesalahan yang muncul di terminal mode teks saat dalam mode GUI, daripada harus menekan Ctrl+ Alt+ F1atau Ctrl+ Alt+ F2untuk melihat pesan setiap kali dan kemudian beralih kembali ke mode GUI dengan menekan Ctrl+ Alt+ F7?

Terima kasih.

Jay
sumber
Saya mengklarifikasi subjek pertanyaan. Bash hanyalah salah satu dari banyak shell yang berbeda untuk Linux. Pesan dikirim ke entitas di mana (misalnya) bash berjalan, bukan shell itu sendiri.
fschmitt
Tidak bisakah Anda mengakses / var / log / "bla" dan membaca log masing-masing? Anggap saja ini pada proses boot Anda mungkin melihat /var/log/boot.log
vfbsilva

Jawaban:

6

Anda dapat melihat konten saat ini dari konsol teks /dev/tty1dalam file /dev/vcs1(di mana 1 adalah angka di Ctrl+ Alt+ F1). (Jika Anda mencoba membaca dari /dev/tty1, Anda akan bersaing dengan program yang berjalan di sana untuk input keyboard.) Perangkat vcs biasanya hanya dapat dibaca oleh root. Anda mendapatkan snapshot; tidak ada cara mudah untuk mendapatkan konten yang datang.

Program ttysnoop memungkinkan Anda untuk menonton lalu lintas di konsol dari terminal lain (termasuk terminal X). Tetapi ini adalah sesuatu yang harus Anda atur terlebih dahulu.


Alih-alih mencoba untuk menangkap pesan ketika sudah di-output pada konsol teks, atur agar pesan diarahkan ke lokasi yang berbeda. Sebagian besar keluaran konsol seperti itu akan berakhir di log sistem, dalam file di bawah /var/log. Di bawah X (yaitu dalam mode grafis), Anda dapat menangkap pesan-pesan ini xconsole, yang merupakan bagian dari distribusi X standar.

Jika xconsoletidak menunjukkan pesan yang Anda inginkan, edit pertanyaan Anda untuk menyebutkan dari mana pesan-pesan ini berasal.

Jika Anda tidak xconsoledapat menampilkan pesan apa pun, edit pertanyaan Anda untuk memasukkan sistem operasi yang tepat, setiap langkah konfigurasi yang telah Anda lakukan, dan semua pesan kesalahan yang Anda lihat.


Jika pesan tidak datang dari fasilitas logging sistem, tetapi dari program yang Anda mulai di konsol mode teks, Anda akan lebih baik dilayani dengan menggunakan pengalihan . Atur untuk memulai program seperti ini:

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

Kemudian Anda dapat membaca output dari program dari mana saja dengan melihat file ~/.myprogram.log. Secara khusus, untuk menonton file tumbuh secara real time, jalankan

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

Jika program dimulai oleh skrip startup X Anda, akan lebih baik untuk mengarahkan output dari seluruh urutan startup X ke file. Sebenarnya banyak distribusi melakukan ini secara otomatis. Jika Anda menggunakan file .xinitrcatau .xsession, letakkan baris berikut di dekat bagian awal file untuk mengarahkan output dari program-program berikutnya:

exec >"$HOME/.xsession-$DISPLAY.log" 2>&
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Terima kasih. Saya hanya melakukan su -c "cat / dev / vcs1" dan berhasil. Dan seperti yang Anda sebutkan, itu adalah snapshot sederhana dari pesan-pesan di konsol, tetapi hanya itu yang saya butuhkan.
Jay
@ Jay: sekarang saya sudah melihat komentar Anda, saya punya jawaban yang berbeda, yaitu Anda harus menggunakan pengalihan di skrip startup X Anda. Saya meninggalkan kemungkinan lain karena mungkin bermanfaat bagi orang lain yang menelusuri arsip pertanyaan.
Gilles 'SANGAT berhenti menjadi jahat'
1

Anda dapat menggunakan xconsole untuk ini. Dari uraiannya:

Program xconsole menampilkan pesan yang biasanya dikirim ke / dev / console.

Bergantung pada konfigurasi yang dipilih distribusi Anda, Anda mungkin harus memulainya sebagai root (yaitu dengan sudo xconsolemasing - masing su -c xconsole),

fschmitt
sumber
Terima kasih. Tetapi apakah ada cara untuk melihat pesan yang sudah ada di konsol setelah saya mulai X? seperti misalnya, dalam situasi saya .. Saya sudah menulis skrip python untuk mengubah wallpaper secara acak. Dan saya telah mengaturnya sehingga setiap kali saya memulai X, skrip dipanggil. Tetapi skrip tidak berfungsi seperti yang saya inginkan dan saya mendapatkan beberapa pesan kesalahan di konsol. Ketika saya memulai xconsole setelah saya masuk ke X, saya hanya bisa melihat pesan yang dikirim ke konsol sejak saat itu. Halaman manual untuk xconsole tidak mengatakan apa-apa tentang melihat pesan yang sudah ada di konsol
Jay
Anda dapat di jendela terminal mana saja (mis. Xterm) menampilkan pesan yang dicetak saat bootup dengan perintah dmesg.
fschmitt
dmesg hanya menampilkan pesan yang muncul saat boot. Saya tidak berpikir itu menunjukkan pesan yang muncul di konsol setelah saya boot dan masuk dan melakukan "startx" misalnya ..
Jay
1

Sudahkah Anda mencoba xterm -C? Ini bekerja di Ubuntu 17.04.

Erik Bennett
sumber
1
Kedengarannya layak komentar, tetapi jika Erik akan menambahkan beberapa konteks, tampaknya jawaban yang masuk akal / mungkin: "-C Opsi ini menunjukkan bahwa jendela ini harus menerima output konsol. Ini tidak didukung pada semua sistem ...."
Jeff Schaller
Poin yang adil. Lain kali saya akan berkomentar. Maaf untuk kenyamanan apa pun.
Erik Bennett
-4

Jika Anda ingin melihat pesan konsol, Anda bisa meletakkannya di akhir /etc/rc.local,

sleep 60
Jose
sumber
2
OP ingin melihat pesan setelah memuat GUI. Ini hanya akan membuat sistem menunggu satu menit sebelum memuat sehingga itu bukan solusi.
terdon