บนเซิร์ฟเวอร์อูบุนตูฉันจะหลีกเลี่ยงการล้างหน้าจอก่อนที่หน้าจอเข้าระบบจะปรากฏขึ้นได้อย่างไร
ฉันพยายามอ่านข้อความแสดงข้อผิดพลาดที่หนึ่งในบริการและฉันได้รับหน้าจอที่น่ารำคาญนี้และฉันไม่สามารถเลื่อนขึ้นด้วย shift-pageUp
บนเซิร์ฟเวอร์อูบุนตูฉันจะหลีกเลี่ยงการล้างหน้าจอก่อนที่หน้าจอเข้าระบบจะปรากฏขึ้นได้อย่างไร
ฉันพยายามอ่านข้อความแสดงข้อผิดพลาดที่หนึ่งในบริการและฉันได้รับหน้าจอที่น่ารำคาญนี้และฉันไม่สามารถเลื่อนขึ้นด้วย shift-pageUp
คำตอบ:
สำหรับ systemd ตั้งค่าTTYVTDisallocateเป็น no
เพื่อให้บรรลุนี้เรียกใช้systemctl edit getty@tty1 และป้อนรหัสด้านล่าง
[Service]
TTYVTDisallocate=no
systemctl edit Unknown operation 'edit'.ขอบคุณสำหรับลิงค์
การดูหน้าจอสุดท้ายของข้อความที่ปรากฏขึ้นระหว่างการบู๊ต
เมื่อ Ubuntu Server บู๊ตข้อความที่คุณเห็นมักจะเขียนไปยัง tty7 (คอนโซลเสมือนที่เจ็ด) เมื่อการบูทเสร็จสิ้นคุณจะถูกเปลี่ยนเป็น tty1 ซึ่งคุณจะได้รับพร้อมท์ให้ล็อกออน ดังนั้นข้อความบูตจะไม่ถูกล้างจริง คุณเพียงแค่เปลี่ยนไปใช้คอนโซลอื่นจากคอนโซลที่มีอยู่
หากต้องการดูอีกครั้งคุณสามารถสลับไปที่ tty7 ได้โดยกด Alt + F7 คุณสามารถเปลี่ยนกลับเป็น tty1 ด้วย Alt + F1 (และไปที่สองด้วย Alt + F2 และอื่น ๆ ) สิ่งนี้ไม่ได้ (และไม่ควรใช้) กับระบบ Ubuntu Server ส่วนใหญ่ แต่เมื่อ GUI ทำงานอยู่จะต้องใช้ Ctrl + Alt + F1 เพื่อเปลี่ยนเป็น tty1 (และ Ctrl + Alt + F2 สำหรับ tty2 เป็นต้น)
การป้องกันไม่ให้หน้าจอถูกล้างหลังจากผู้ใช้ล็อกเอาต์ดังนั้นข้อความจากเซสชันของพวกเขาจะปรากฏในเซสชันถัดไป
ในโฮมไดเร็กตอรี่ของคุณมีไฟล์ชื่อ. bash_logout ซึ่งมีบางสิ่งดังนี้:
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
นั่นคือสิ่งที่ทำให้หน้าจอถูกล้างออกจากระบบ หากต้องการหยุดสิ่งนั้นไม่ให้เกิดขึ้นให้ใส่เครื่องหมายความคิดเห็นไว้ในบรรทัดทั้งหมด
#if [ "$SHLVL" = 1 ]; then
# [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
#fi
หลังจากผ่านไปหลายชั่วโมงของ Google ฉันพบวิธีแก้ปัญหาในหัวข้อนี้และคำถามนี้
ก่อนอื่นเพิ่มลงconsole=tty1ในของคุณGRUB_CMDLINE_LINUX(ฉันขอแนะนำให้เพิ่มnoplymouthการยับยั้งplymouthและ splashscreen ที่ไร้ประโยชน์)
#> sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX="console=tty1 noplymouth"
สิ่งนี้บังคับให้ล็อกเคอร์เนลที่จะพิมพ์tty1แทนtty7และหลีกเลี่ยงttyสวิตช์ก่อนพร้อมต์ล็อกอิน
แล้วก็ไปลง/etc/initและแก้ไขหนึ่งหรือมากกว่าtty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, หรือtty6.conf console.confฉันแก้ไขพวกเขาทั้งหมดเพิ่ม--noclearตัวเลือกในgettyคำสั่ง ตัวอย่างเช่นการแก้ไขtty1.conf:
#> sudo vi /etc/init/tty1.conf
คุณจะต้องแทนที่:
respawn
exec /sbin/getty -8 38400 tty1
ด้วย:
respawn
exec /sbin/getty -8 38400 --noclear tty1
นั่นคือทั้งหมดทำงานsudo update-grubและตอนนี้ระบบของคุณควรบูตในหนึ่งเดียวttyโดยไม่ต้องล้างมัน
update-grubหลังจากแก้ไข/etc/default/grub
sudo update-grubต้องจำเป็นต้องสร้างใหม่grub.cfgขอบคุณสำหรับการแก้ไข
/var/log/มากกว่า ฉันจะเริ่มมองหาที่และboot.logsyslog