ฉันจะปิดการใช้งานโปรแกรมรักษาหน้าจอคอนโซลของ Linux อย่างถาวรได้อย่างไร


42

ฉันมีเซิร์ฟเวอร์ Ubuntu ที่บูทในโหมดข้อความ มันไม่ค่อยมีหน้าจอหรือแป้นพิมพ์ติดอยู่ แต่เมื่อฉันแนบหน้าจอฉันมักจะต้องแนบแป้นพิมพ์ด้วยเพราะโปรแกรมรักษาหน้าจอโหมดคอนโซลของ darn จะเปิดอยู่และฉันจะต้องกดปุ่มเพื่อดูว่ามีอะไรบ้าง กำลังเกิดขึ้น.

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


ดูเหมือนว่าจะตอบอย่างดีกว่าที่ askubuntu: askubuntu.com/questions/138918//
รอย

ฉันเขียนสองวิธีที่แตกต่างกันซึ่งฉันต้องการสำหรับการแจกแจง RHEL ต่างๆ หนึ่งในนั้นอาจช่วยคุณด้วย Ubuntu: superuser.com/a/1004931/197972
David C.

คำตอบ:


23

ใน Ubuntu 12.10 และก่อนหน้านี้แพ็คเกจเครื่องมือคอนโซลช่วยให้สามารถควบคุมตัวเลือกคอนโซลได้

หากต้องการปิด blanking หน้าจอและ powerdown ชุดBLANK_TIMEและPOWERDOWN_TIMEไปใน0 /etc/console-tools/configหากคุณไม่ต้องการแก้ไขไฟล์กำหนดค่าสามารถสร้างเอฟเฟ็กต์เดียวกันได้โดยสร้างไฟล์ใหม่โดย/etc/console-tools/config.dมีสิ่งต่อไปนี้:

BLANK_TIME=0
POWERDOWN_TIME=0

ชื่อของไฟล์ใน config.d จะต้องประกอบด้วยตัวอักษรตัวพิมพ์เล็กและใหญ่, ตัวเลข, ขีดล่างและยัติภังค์


คุณรู้ได้อย่างไร ฉันค้นหาอินเทอร์เน็ตเป็นประจำทุกเช้าเพื่อหาเอกสารสำหรับ / etc / console-tools และไม่สามารถหาได้
raldi

10
คำเตือนด้วยสิ่งนี้: ฉันติดตั้งคอนโซล - เครื่องมือบนเซิร์ฟเวอร์อูบุนตู 12.04, ทำการปรับแต่งด้านบนและมันแทงก์อย่างสมบูรณ์ ... ไม่แน่ใจว่าสิ่งที่ฉันทำผิด แต่ถ้ามันเกิดขึ้นกับคนอื่น (และคุณอึที่เซิร์ฟเวอร์ อย่างฉัน!), บูตเพื่อกู้คืน -> root prompt -> mount -o remount, rw / -> apt-get เอา console-tools -> รีบูท
BaronVonKaneHoffen

สิ่งนี้ไม่มีอยู่ใน Ubuntu 18.04 :( - ทางเลือกใด ๆ ?
Roman Gaufman

17

หรือคุณใช้ / etc / kbd / config เพื่อตั้งค่า (ขึ้นอยู่กับระบบของคุณสิ่งที่ติดตั้ง)

BLANK_TIME=0
BLANK_DPMS=off

ฉันจะเริ่มต้นอะไรใหม่เมื่อมีการเปลี่ยนแปลงการกำหนดค่า KBD
Frodik

1
ดูเหมือนว่าจะเป็น /etc/init.d/kbd reload
Vincent

2
ฉันลองสิ่งนี้ในการติดตั้งใหม่ของ Ubuntu Server 10.04.4 และ 12.04.1 และมันก็ไม่ได้ผลเหมือนกัน
ศ. โมริอาร์ตี

การแจกแจงนี้ใช้กับอะไร?
Michael Hampton

ใช้งานได้กับ Debian 6 และ 7 ไฟล์กำหนดBLANK_TIME=30ค่านี้ตั้งตามค่าเริ่มต้น
basic6 6

15

พารามิเตอร์ถูกควบคุมผ่านบรรทัดคำสั่งเคอร์เนลโดยใช้ setterm เพียงเปลี่ยนแปลงการตั้งค่ารันไทม์ หากต้องการปิดการใช้งานทั้งระบบคุณสามารถแก้ไขบรรทัดคำสั่งการบู๊ตเคอร์เนลโดยต่อท้ายด้วย "consoleblank = 0" ในการกำหนดค่าการบูต (grub / lilo)

หากบางสิ่งบางอย่างในระหว่างการตั้งค่าบูตมันก็จะแทนที่ค่า


3
ตามที่เห็นในsuperuser.com/questions/152347/… !
codehead

ใช้ grub2 มันอาจจะเพิ่มใน / etc / default / ด้วงแล้วการอัปเดตการตั้งค่าด้วงกับGRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0" grub[2]-mkconfig -o /boot/grub/grub.cfgหรืออาจจะฝังในบรรทัดคำสั่งเคอร์เนลในตัวในขณะที่กำหนดค่าและรวบรวมเคอร์เนลด้วยตนเอง
user3132194

7

หากคุณเพิ่มsettermคำสั่งให้/etc/rc.localควรมีผลบังคับใช้สำหรับคอนโซลเสมือนทั้งหมดไม่ว่าผู้ใช้จะถูกล็อกอินหรือไม่ก็ตาม เช่น:

setterm -blank 0

ดูเหมือนจะไม่สามารถใช้งานได้จริงใน rc.local
raldi

มันใช้งานได้กับฉันในอดีตในระบบประเภท RedHat อาจเป็นไปได้ว่าการโหลด Debian / Ubuntu rc.localในเวลาที่แตกต่างกันเล็กน้อยกว่า RH ขอโทษสำหรับเรื่องนั้น.
James Sneeringer

ไม่ทำงานบน CentOS 6.3 หน้าจอยังคงว่างเปล่าหลังจากผ่านไป 10 นาที
Michael Hampton

1
ผมพบว่านี้ทำงานให้กับ RHEL 5 และ 6 ( /bin/setterm -blank 0 -powerdown 0 -powersave off) แต่ไม่ได้สำหรับ 7. ความสำเร็จหรือความล้มเหลวอาจจะขึ้นอยู่กับการกระจายของคุณและสิ่งแวดล้อมคอนโซลในเวลา rc.local ที่จะดำเนินการ
David C.

ฉันได้รับ <~ $ sudo setterm -blank 0 setterm: เทอร์มินัล xterm-256color ไม่สนับสนุน --blank
Roman Gaufman

4

หากคุณใช้ Ubuntu รุ่นใหม่ที่ใช้งานระดับสูงกว่าปกติคุณสามารถใช้:

for file in /etc/init/tty*.conf; do tty="/dev/`basename $file .conf`"; echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty" | sudo tee -a "$file"; done

คำอธิบายเล็กน้อยเกี่ยวกับสิ่งที่เกิดขึ้นที่นี่:

เวอร์ชันใหม่ของ Ubuntu ใช้ upstart สำหรับการเริ่มต้นระบบ ด้วยการพุ่งพรวดคอนโซลลินุกซ์จะถูกติดตั้งด้วยไฟล์ปรับแต่งที่เก็บอยู่ภายใน / etc / init คำสั่งด้านบนเริ่มต้นด้วยการวนซ้ำไฟล์กำหนดค่าแต่ละไฟล์:

for file in /etc/init/tty*.conf;

ชื่อไฟล์ config upstart ใน $ file ถูกใช้เพื่อสร้างชื่อของอุปกรณ์ tty:

tty="/dev/`basename $file .conf`";

คำสั่งพุ่งพรวด "post-start" ถูกสร้างขึ้นเพื่อรัน "setterm" เพื่อปิดใช้งานการว่างหน้าจอและการประหยัดพลังงานหลังจาก tty เริ่มทำงานแล้ว:

echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty"

และในที่สุดคำสั่งนั้นจะถูกผนวกเข้ากับไฟล์ config upstart:

| sudo tee -a "$file";

คำตอบของคุณจะดีขึ้นมากถ้าคุณอธิบายว่าเกิดอะไรขึ้นที่นี่ เพียงแค่ให้คำสั่งขนาดใหญ่อย่างนั้นโดยที่ไม่มีคำอธิบายก็ไม่มีประโยชน์
Zoredache

@Zoredache คุณพูดถูกฉันได้เพิ่มคำอธิบายแล้ว ขอบคุณสำหรับความคิดเห็น.
Chris Pick

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