ปิดการใช้งานการล้างหน้าจอในคอนโซลข้อความ


75

ฉันใช้งาน linux clusters ส่วนใหญ่ใน SLES10 เซิร์ฟเวอร์เป็นเบลดส่วนใหญ่เข้าถึงได้ผ่านคอนโซลระยะไกล มีคอนโซลจริงในห้องเซิร์ฟเวอร์ แต่ปิดอยู่

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


SLES10 ใช้ SysV init การกระจายจำนวนมากที่ใช้ systemd, นี่เป็นทางออกที่เป็นไปได้สำหรับ Arch Debian 6 และ 7 ระบบใช้ kbd โดยค่าเริ่มต้นคลิกที่นี่
basic6 6

สำหรับ Debian ดูunix.stackexchange.com/questions/238846
JdeBP

คำตอบ:


85

คุณสามารถตรวจสอบว่าหมดเวลาที่เคอร์เนลใช้สำหรับการทำคอนโซลเสมือนให้ว่างผ่าน:

$ cat /sys/module/kernel/parameters/consoleblank
600

ไฟล์นี้เป็นแบบอ่านอย่างเดียวและมีการระบุการหมดเวลาในไม่กี่วินาที ดูเหมือนว่าค่าเริ่มต้นปัจจุบันจะเป็น 10 นาที

คุณสามารถเปลี่ยนค่านั้นได้ด้วยการป้อนคำสั่งต่อไปนี้บนคอนโซลเสมือน (ถ้าคุณอยู่ใน xterm คุณต้องเปลี่ยนเป็นคอนโซลเสมือนผ่านการกดปุ่มเช่นCtrl+ Alt+ F1)

$ setterm -blank VALUE

ในกรณีที่ค่าใหม่ที่ระบุไว้ในนาที ค่า 0 ปิดใช้งานการ blanking:

$ cat /sys/module/kernel/parameters/consoleblank
600
$ setterm -blank 0
$ cat /sys/module/kernel/parameters/consoleblank
0

settermมีตัวเลือกที่เกี่ยวข้องกับการประหยัดพลังงานอื่น ๆ ชุดค่าผสมที่มีประโยชน์ที่สุดน่าจะเป็น

$ setterm -blank 0 -powersave off

ดังนั้นอย่างถาวร / โดยอัตโนมัติปิดการใช้งานคอนโซลเสมือน blanking เมื่อเริ่มต้นคุณสามารถ:

  1. เพิ่มconsoleblank=0ในพารามิเตอร์เคอร์เนล (แก้ไขการกำหนดค่าด้วง)
  2. เพิ่มsetterm -blank 0คำสั่งลงในrc-localสคริปต์เริ่มทำงานหรือเทียบเท่า
  3. เพิ่มsettermเอาท์พุท/etc/issueเนื่องจาก/etc/issueเป็นเอาต์พุตในทุกคอนโซลเสมือน:

    # setterm -blank 0 >> /etc/issue

เลือกหนึ่งทางเลือกจากด้านบน


2
PS:บน Ubuntu 11.10 ระบบ (Thinkpad X200) ผมสังเกตเห็นข้อผิดพลาดที่คอนโซล blanking โดย kernel รบกวนกับเซสชั่น X11 ทำงาน นั่นหมายความว่าหลังจากผ่านไป 10 นาทีเมื่อกดปุ่มสุดท้ายจอแสดงผล X11 จะว่างและคุณต้องวนไปยังคอนโซลเสมือนเพื่อให้หน้าจอ X11 กลับมา (น่ารำคาญมากระหว่างการเล่นวิดีโอ) สิ่งนี้เป็นอิสระจากการตั้งค่าที่เกี่ยวข้องกับ DPMS / สกรีนเซฟเวอร์ภายใต้ X11 (คิดxsetฯลฯ ) ดังนั้นการปิดใช้งานการปิดคอนโซลคอนโซลแบบ virutal ดังที่อธิบายไว้ข้างต้นจึงเป็นวิธีแก้ไขปัญหาด่วนสำหรับระบบที่ได้รับผลกระทบ
maxschlepzig

อืมม ด้วยเหตุผลบางอย่างฉันไม่เห็น/sys/module/kernel/parameters/consoleblankบนเซิร์ฟเวอร์ CentOS 5.x ของฉัน ตั้งเป็นชื่ออื่นได้ไหม?
Mike B

1
บน RHEL 5 และ 6 ผมพบว่าการวาง/bin/setterm -blank 0 -powerdown 0 -powersave offใน/etc/rc.localจะทำงานได้ดี ใน RHEL 7 อย่างไรก็ตามมันจะล้มเหลว การเพิ่มconsoleblank=0พารามิเตอร์เคอร์เนล te ทำงานบนแพลตฟอร์มนั้น
David C.

7
โปรดทราบว่าคุณไม่จำเป็นต้องทำงานsettermในคอนโซลเสมือน คุณอาจเปลี่ยนเส้นทางไปยังมันได้: setterm -blank 0 > /dev/tty1ใช้ได้ดี หรือคุณอาจใช้setterm -blank < /dev/tty1เพื่อสอบถามค่าปัจจุบันจาก tty1 หรือsetterm -blank force < /dev/tty1เพื่อบังคับให้ blanking
Alexander Amelkin

@AlexanderAmelkin - การเปลี่ยนเส้นทางไปยัง / จาก / dev / tty1 ไม่ทำงานใน RHEL 7 คุณใช้ distro ใดในการทำเช่นนั้น / dev / tty1 เป็นคอนโซลภายในแน่นอน แต่ไม่ว่า / dev / console ดูเหมือนจะทำอะไร
พอล

15

ลองใช้สิ่งนี้:

setterm -blank

1
@markus_b: ดังนั้นเพิ่มคำสั่งนี้ลงในสคริปต์เริ่มต้น (เช่น/etc/init/markus-console.confถ้าคุณใช้ Upstart หรือ/etc/init.d/markus-console.shเพิ่ม/etc/rd?.dsymlink ใน SysVinit ฉันไม่ทราบตำแหน่ง SuSE จริง)
Gilles

2
@mattdm ไม่เป็นความจริง - systemdมักจะมาพร้อมกับrc-localบริการที่เข้ากันได้ - หรือคุณสามารถเพิ่มบริการที่กำหนดเอง ...
maxschlepzig

3
@mattdm ทำไมคุณไม่สามารถเขียนหน่วยที่รันคำสั่งนั้นได้?
Kyrias

1
เคล็ดลับ: ออกจากtmuxก่อนไม่เช่นนั้นจะไม่ทำงาน
Cody Hess


14

ตามที่: https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling#DPMS_Interaction_in_a_console_with_setterm

ป้องกันไม่ให้หน้าจอปิด (ในคอนโซล)

$ setterm -blank 0 -powerdown 0

อีกทางหนึ่งคุณสามารถปิดใช้งานการปิดคอนโซลอย่างถาวรโดยใช้คำสั่งต่อไปนี้:

# echo -ne "\033[9;0]" >> /etc/issue


3
วิธีที่สองทำงานได้อย่างมีเสน่ห์บน Marvell ARM Debian โซลูชันอื่นทั้งหมดไม่ได้ทำอะไรเลย
Alexey Sviridov

13

ฉันได้ดำเนินการและทดสอบการกำหนดค่าต่อไปนี้ซึ่งทำงานได้ดีบน sles10, workhorse ของฉันในขณะนี้

ใน

/etc/init.d/boot.local

เพิ่ม

setterm -blank

ดูเหมือนว่าจะเป็นทั้งหมด ขอบคุณสำหรับ Uku Loskit และ Gilles ที่ผลักไปในทิศทางที่ถูกต้อง


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

ขออภัยชอบรุ่นเดิมดีกว่า
markus_b

ฉันต้องเพิ่มคำตอบที่ได้รับคะแนนสูงสุด - ประหยัดพลังงานเนื่องจาก ipmi บนบอร์ดระบบของฉันโง่ถ้ามันไม่มีทั้งสองส่วนนี้ น่าเศร้าที่มันไม่ได้เก็บการตั้งค่าระหว่างการใช้งานและเมื่อคุณสมบัติเหล่านี้เตะในหน้าต่างจะปรากฏขึ้นที่ด้านหน้าและเริ่มวนหน้าต่างผ่าน 4 ขนาดที่แตกต่างกันทุก ๆ วินาทีหรือ 2 ทำให้ไม่สามารถจับหน้าต่างและปรับขนาดด้วยตนเอง / เปิดเทอมประหยัดพลังงาน :(
Kendrick

13

ทางออกถาวรเพียงอย่างเดียวคือการเพิ่มลงconsoleblank=0ในบรรทัดคำสั่งเคอร์เนล คุณสามารถดูค่า (ซึ่งเป็นค่าเริ่มต้นถึง 600 วินาที) ใน:

/sys/module/kernel/parameters/consoleblank

(โปรดทราบว่าไฟล์นี้เป็นแบบอ่านอย่างเดียว) วิธีเดียวที่จะเปลี่ยนค่าของ consoleblank คือการรีบูตด้วยตัวเลือกบรรทัดคำสั่งเคอร์เนลใหม่


3
ประโยคสุดท้ายที่เป็นธรรม - consoleblankคุณไม่ต้องรีบูตเพื่อเปลี่ยนค่าของ ดูคำตอบของฉัน
maxschlepzig

ฉันไม่พบ setterm-blank ในการทำงานที่เชื่อถือได้ ดูเหมือนว่าบางครั้งจะได้รับการรีเซ็ตหลังจากออกจากระบบหรือเปลี่ยนเป็นเทอร์มินัลเสมือนอื่น
amcnabb

ในการเพิ่มการตั้งค่าแบบถาวรนี้ด้วย grub ให้แก้ไข /boot/grub/grub.conf และผนวก consoleblank = 0 เข้ากับบรรทัดที่ขึ้นต้นด้วย "kernel / boot / vmlinuz ... " จากนั้นรีบูท
Hoylen

1
"only" ดูเหมือนคำศัพท์ที่นี่ ...
ไม่ใช่

5

หากคุณต้องการป้องกันหน้าจอว่างเปล่าหลังจากเข้าสู่ระบบของผู้ใช้แล้วเพียงแค่ต้องผนวกsetterm -powersave off -blank 0กับ$HOME/.bash_profileผู้ใช้ที่เกี่ยวข้อง


5

ฉันถูกบัฟเฟอร์ด้วยปัญหานี้จริงๆ เทคนิคทั้งหมดข้างต้นด้วยการใช้ setterm และเปลี่ยนเส้นทางจาก / ถึง / dev / tty0 ไม่ได้ผลจาก ssh ของฉัน

จากนั้นฉันก็ตระหนักถึงวิธีการปิดการใช้งาน:

TERM=linux setterm -blank 0 -powerdown 0  -powersave off >/dev/tty0 </dev/tty0

TERM = linux แทนที่ TERM เริ่มต้น (ซึ่งเป็น xterm-256color บนเครื่องของฉัน) และช่วยให้ setterm ค้นหาพารามิเตอร์ที่เหมาะสมจาก tty0

คุณสามารถตรวจสอบผลลัพธ์ได้

cat /sys/module/kernel/parameters/consoleblank

มันควรเป็น 0 ถ้าเป็น 600 เคล็ดลับก็ไม่ได้ผล


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