การดูข้อความคอนโซลระบบใน GUI


10

ภายใต้ Linux เป็นไปได้ไหมที่จะดูข้อความแสดงข้อผิดพลาดที่ปรากฏบนเทอร์มินัลโหมดข้อความขณะอยู่ในโหมด GUI แทนที่จะต้องกดCtrl+ Alt+ F1หรือCtrl+ Alt+ F2เพื่อดูข้อความทุกครั้งแล้วสลับกลับไปที่โหมด GUI โดยกดCtrl+ Alt+ F7?

ขอบคุณ.


ฉันชี้แจงหัวข้อของคำถาม Bash เป็นหนึ่งในหลาย ๆ เชลล์สำหรับ Linux ข้อความถูกส่งไปยังเอนทิตีที่ (เช่น) bash กำลังทำงานไม่ใช่เชลล์เอง
fschmitt

คุณไม่สามารถเข้าถึง / var / log / "blah" และอ่านบันทึกที่เกี่ยวข้องหรือไม่ สมมติว่ามันเป็นกระบวนการบูตคุณอาจดู /var/log/boot.log
vfbsilva

คำตอบ:


6

คุณสามารถดูเนื้อหาปัจจุบันของคอนโซลข้อความ/dev/tty1ในไฟล์/dev/vcs1(โดยที่ 1 คือหมายเลขในCtrl+ Alt+ F1) (หากคุณพยายามอ่าน/dev/tty1คุณจะแข่งขันกับโปรแกรมที่ทำงานที่นั่นเพื่อป้อนคีย์บอร์ด) โดยปกติแล้วอุปกรณ์ vcs จะสามารถอ่านได้โดยรูทเท่านั้น คุณได้ภาพรวม ไม่มีวิธีที่สะดวกในการรับเนื้อหาตามที่มา

ttysnoopโปรแกรมช่วยให้คุณสามารถดูการจราจรบนคอนโซลจากสถานีอื่น (รวมถึงสถานี X) แต่นี่คือสิ่งที่คุณต้องตั้งค่าล่วงหน้า


แทนที่จะพยายามที่จะจับข้อความเมื่อพวกเขาได้รับการส่งออกบนคอนโซลข้อความจัดให้มีข้อความที่นำไปยังตำแหน่งอื่น /var/logส่วนใหญ่ส่งออกคอนโซลดังกล่าวจะจบลงในบันทึกของระบบในไฟล์ภายใต้ ภายใต้ X (เช่นในโหมดกราฟิก) คุณสามารถจับข้อความเหล่านี้ด้วยxconsoleซึ่งเป็นส่วนหนึ่งของการแจกแจงมาตรฐาน X

หากxconsoleไม่แสดงข้อความที่คุณต้องการให้แก้ไขคำถามของคุณเพื่อพูดถึงว่าข้อความเหล่านี้มาจากที่ใด

หากคุณไม่สามารถxconsoleแสดงข้อความใด ๆ ให้แก้ไขคำถามของคุณเพื่อรวมระบบปฏิบัติการที่แน่นอนขั้นตอนการกำหนดค่าที่คุณทำและข้อความแสดงข้อผิดพลาดที่คุณเห็น


หากข้อความที่ไม่ได้มาจากสิ่งอำนวยความสะดวกระบบเข้าสู่ระบบ แต่จากโปรแกรมที่คุณเริ่มต้นในคอนโซลโหมดข้อความคุณจะได้รับบริการที่ดีขึ้นโดยใช้การเปลี่ยนเส้นทาง จัดให้มีเพื่อเริ่มโปรแกรมเช่นนี้:

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

~/.myprogram.logจากนั้นคุณสามารถอ่านเอาท์พุทจากโปรแกรมจากที่ใดก็ได้โดยมองในแฟ้ม โดยเฉพาะอย่างยิ่งเมื่อต้องการดูไฟล์ที่เพิ่มขึ้นแบบเรียลไทม์ให้เรียกใช้

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

หากโปรแกรมเริ่มต้นโดยสคริปต์เริ่มต้น X ของคุณจะเป็นการดีกว่าถ้าจะเปลี่ยนเส้นทางเอาต์พุตจากลำดับเริ่มต้น X ทั้งหมดไปยังไฟล์ ในความเป็นจริงการกระจายจำนวนมากทำสิ่งนี้โดยอัตโนมัติ หากคุณกำลังใช้ไฟล์.xinitrcหรืออยู่.xsessionให้วางบรรทัดต่อไปนี้ไว้ใกล้กับจุดเริ่มต้นของไฟล์เพื่อเปลี่ยนทิศทางเอาต์พุตจากโปรแกรมที่ตามมา:

exec >"$HOME/.xsession-$DISPLAY.log" 2>&

ขอบคุณ. ฉันเพิ่งทำ su-c "cat / dev / vcs1" และมันก็ใช้ได้ และเช่นเดียวกับที่คุณพูดถึงมันเป็นภาพรวมที่เรียบง่ายของข้อความบนคอนโซล แต่นั่นคือทั้งหมดที่ฉันต้องการ
Jay

@Jay: ตอนนี้ที่ฉันเห็นความคิดเห็นของคุณฉันมีคำตอบที่แตกต่างกันซึ่งก็คือคุณควรใช้การเปลี่ยนเส้นทางในสคริปต์เริ่มต้น X ของคุณ ฉันกำลังละทิ้งความเป็นไปได้อื่น ๆ เพราะพวกเขาอาจเป็นประโยชน์กับคนอื่นที่กำลังดูที่เก็บคำถาม
Gilles 'หยุดชั่วร้าย'

1

คุณสามารถใช้ xconsole สำหรับสิ่งนี้ จากคำอธิบาย:

โปรแกรม xconsole แสดงข้อความที่มักจะส่งไปยัง / dev / console

ทั้งนี้ขึ้นอยู่กับการกำหนดค่าการกระจายของคุณเลือกคุณอาจต้องเริ่มต้นเป็นราก (เช่นกับsudo xconsoleตามลำดับsu -c xconsole)


ขอบคุณ. แต่มีวิธีดูข้อความที่มีอยู่แล้วบนคอนโซลหลังจากฉันเริ่ม X แล้วหรือยัง เช่นในสถานการณ์ของฉัน .. ฉันได้เขียนสคริปต์ python เพื่อเปลี่ยนภาพพื้นหลังแบบสุ่ม และฉันได้ตั้งค่าเพื่อให้เมื่อใดก็ตามที่ฉันเริ่ม X สคริปต์จะถูกเรียกใช้ แต่สคริปต์ไม่ทำงานตามที่ฉันต้องการและฉันได้รับข้อความแสดงข้อผิดพลาดเล็กน้อยบนคอนโซล เมื่อฉันเริ่ม xconsole หลังจากที่ฉันเข้าสู่ X ฉันจะเห็นได้เฉพาะข้อความที่ส่งไปยังคอนโซลจากจุดนั้น man page สำหรับ xconsole ไม่ได้พูดอะไรเกี่ยวกับการดูข้อความที่มีอยู่ในคอนโซลแล้ว
Jay

คุณสามารถในหน้าต่างเทอร์มินัลใด ๆ (เช่น xterm) แสดงข้อความที่พิมพ์ระหว่างการบูตเครื่องด้วยคำสั่ง dmesg
fschmitt

dmesg แสดงเฉพาะข้อความที่ปรากฏขึ้นระหว่างการบูทเครื่อง ผมไม่คิดว่ามันแสดงให้เห็นว่าข้อความที่ปรากฏบนคอนโซลหลังจากที่ฉันบูตขึ้นและเข้าสู่ระบบและทำ "startx" ตัวอย่างเช่น ..
เจ

1

คุณเคยลองxterm -Cไหม มันทำงานบน Ubuntu 17.04


1
มันฟังดูสมกับความเห็น แต่ถ้า Erik จะเพิ่มบริบทดูเหมือนว่าคำตอบที่เป็นไปได้ / เป็นไปได้: "-C ตัวเลือกนี้ระบุว่าหน้าต่างนี้ควรได้รับเอาต์พุตคอนโซลไม่รองรับในทุกระบบ .... "
Jeff Schaller

คะแนนยุติธรรม ครั้งต่อไปฉันจะแสดงความคิดเห็น ขออภัยในความไม่สะดวก
Erik Bennett

-4

หากคุณต้องการดูข้อความคอนโซลคุณสามารถใส่ท้าย /etc/rc.local

sleep 60

2
OP ต้องการเห็นข้อความหลังจากโหลด GUI นี่จะทำให้ระบบรอหนึ่งนาทีก่อนที่จะโหลดดังนั้นจึงไม่ใช่วิธีแก้ปัญหา
terdon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.