หลายคนเมื่อติดตั้งลินุกซ์เรียบร้อยแล้ว เกิดคำถามว่าทำอะไรต่อดี เริ่มต้นคอนฟิกอย่างไร ในบทความนี้ขอเริ่มแนะนำคอนฟิกเพื่อการปรับแต่งคอนโซลของเครื่องลินุกซ์ ซึ่งจะมีทั้งปรับแต่งเพื่อความปลอดภัย และประหยัด Memory ที่ใช้
หมายเหตุ คอนโซล ในที่นี้หมายถึง text console ที่แสดงผลในรูปแบบตัวอักษร ไม่ใช่ X Window
ยกเลิกการแสดงเวอร์ชั่นของลินุกซ์ผ่านทางหน้าจอคอนโซล (Console)
โดยดีฟอลต์แล้วหลังจากการติดตั้ง หน้าจอคอนโซล (Console) ที่รอรับการ login จะแสดงเวอร์ชั่นของลินุกซ์ที่ติดตั้งด้วย โดยข้อความที่แสดงจะนำมาจากไฟล์ /etc/issue
ตัวอย่างไฟล์ /etc/issue ที่ติดตั้งมากับ Fedora 9
[root@server ~]# cat /etc/issue Fedora release 9 (Sulphur) Kernel r on an m (l)
ตัวอย่างหน้าจอคอนโซลของ Fedora 9
Fedora release 9 (Sulphur) Kernel 2.6.25-14.fc9.i686 on an i686 (tty1)
server login:
เพื่อความปลอดภัย แนะนำให้แก้ไขข้อความที่แสดงเวอร์ชั่น หรือลบออกไปเลยก็ได้ เมื่อแก้ไขไฟล์เสร็จแล้ว ที่หน้าจอคอนโซล กด [Ctrl – L ] เพื่อให้คอนฟิกใหม่มีผล
ยกเลิกการรันหน้าจอคอนโซลที่ 2 – 6
หน้าจอคอนโซลที่ติดตั้งมากับลินุกซ์ตั้งแต่เวอร์ชั่นแรกๆ ตั้งแต่ยังไม่มี X Window จนถึงปัจจุบันนี้ จะมีหน้าจอคอนโซลที่สามารถทำงานพร้อมๆ กันได้ 6 หน้าจอ โดยกดปุ่ม [Alt-Fx] สลับไปมา ระหว่างหน้าจอคอนโซล เช่นต้องการไปหน้าจอที่ 5 ก็กดปุ่ม [Alt-F5]
ในการใช้งานจริงปัจจุบันนี้ ส่วนใหญ่จะทำงานผ่าน X Window ไม่ว่าจะใช้ GNOME หรือ KDE หรือไม่ก็ใช้การรีโมตเข้าไปเช่นใช้ Secure Shell เป็นต้น ดังนั้นหน้าจอ Console แทบไม่มีความจำเป็นต้องใช้เลย
ดังนั้นแนะนำให้ยกเลิกหน้าจอคอนโซลที่ 2 ถึง 6 ให้เหลือไว้แต่หน้าจอคอนโซลที่ 1 ซึ่งไว้สำหรับการ แก้ไขปัญหา การบู๊ตเครื่องเป็นต้น
ประโยชน์ของการยกเลิกหน้าจอ ก็เพื่อประหยัด Memory ของเครื่องที่ต้องรันโปรแกรมรองรับการ login ผ่านหน้าจอคอนโซลนั่นเอง ถึงแม้จะดูว่ากินเพียงเล็กน้อยเท่านั้น แต่ถ้าไม่ต้องใช้ก็ไม่จำเป็นต้องรัน
ตรวจสอบโปรแกรมที่รันสำหรับรองรับการ login ผ่านคอนโซล
โปรแกรมที่ลินุกซ์ส่วนใหญ่ใช้รันเพื่อรองรับการ login ผ่านหน้าจอคอนโซลนั้น คือ /sbin/mingetty ซึ่งโดยดีฟอลต์แล้วจะรันขึ้นมาทั้งหมด 6 หน้าจอ สามารถใช้คำสั่ง ps เพื่อแสดงปริมาณ Memory ที่ใช้ได้ดังนี้
[root@server ~]# ps auxw | egrep "(USER|min)" USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1592 0.0 0.0 1812 428 tty4 Ss+ 00:31 0:00 /sbin/mingetty tty4 root 1593 0.0 0.0 1812 424 tty5 Ss+ 00:31 0:00 /sbin/mingetty tty5 root 1594 0.0 0.0 1812 428 tty2 Ss+ 00:31 0:00 /sbin/mingetty tty2 root 1595 0.0 0.0 1812 424 tty3 Ss+ 00:31 0:00 /sbin/mingetty tty3 root 1596 0.0 0.0 1812 424 tty1 Ss+ 00:31 0:00 /sbin/mingetty tty1 root 1597 0.0 0.0 1812 424 tty6 Ss+ 00:31 0:00 /sbin/mingetty tty6
สำหรับไฟล์คอนฟิกที่ใช้ในการควบคุมโปรแกรม /sbin/mingetty อีกทีนั้น จะมีอยู่สองแบบขึ้นอยู่กับเวอร์ชั่นของลินุกซ์ที่ติดตั้ง สำหรับ Fedora นั้น ก่อน Fedora 9 จะใช้ไฟล์คอนฟิก /etc/inittab ในการควบคุม แต่ถ้าเป็นเวอร์ชั่น 9 เป็นต้นมา จะแยกเป็นคอนฟิกไฟล์ย่อยๆ อยู่ใน /etc/event.d/
การยกเลิกคอนโซล 2-6 สำหรับ Fedora ก่อนเวอร์ชั่น 9
ต้องเข้าไปแก้ไขไฟล์ /etc/inittab
ตัวอย่างไฟล์ /etc/inittab ในส่วนควบคุม /sbin/mingetty ที่ติดตั้งมากับ Fedora ก่อนเวอร์ชั่น 9
# Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
วิธีการแก้ไขให้ใส่เครื่องหมาย # ก่อนหน้าบรรทัดของโปรแกรม /sbin/mingetty ตั้งแต่เลข 2 ถึงเลข 6 หรือจะลบบรรทัดเหล่านี้ทิ้งไปเลยก็ได้ ให้เหลือแต่บรรทัดที่มีเลข 1 นำหน้า
ตัวอย่างไฟล์ /etc/inittab หลังการแก้ไข
# Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 #2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6
เมื่อแก้ไขไฟล์ /etc/inittab เสร็จแล้ว ให้รันคำสั่ง init q เพื่อให้โปรเซส init อ่านไฟล์ /etc/inittab ใหม่ ซึ่งจำทำให้คอนโซลที่ 2 – 6 ใช้งานไม่ได้อีกต่อไป
การยกเลิกคอนโซล 2-6 สำหรับ Fedora 9
ตั้งแต่ Fedora 9 ไฟล์คอนฟิกของโปรเซส init จะถูกควบคุมด้วย /etc/event.d/ โดยจะมีไฟล์ย่อยๆ ออกจากกัน เช่นไฟล์คอนฟิกสำหรับรันหน้าจอคอนโซลที่ 2 คือไฟล์ /etc/event.d/tty2
ตัวอย่างไฟล์คอนฟิกสำหรับรันหน้าจอคอนโซลที่ 2
[root@server event.d]# cat /etc/event.d/tty2 # tty2 - getty # # This service maintains a getty on tty2 from the point the system is # started until it is shut down again.
start on stopped rc2 start on stopped rc3 start on stopped rc4 start on started prefdm
stop on runlevel 0 stop on runlevel 1 stop on runlevel 6
respawn exec /sbin/mingetty tty2
วิธีการที่จะยกเลิกหน้าจอคอนโซลได้นั้น ต้องลบไฟล์คอนฟิกเป็นไฟล์ๆ ไป เช่นยกเลิกหน้าจอที่ 2 ก็ลบไฟล์ /etc/event.d/tty2 ออกไป ดังนั้นถ้าต้องการยกเลิกหน้าจอที่ 2 – 6 สามารถทำได้ดังนี้
[root@server ~]# rm -f /etc/event.d/tty2 [root@server ~]# rm -f /etc/event.d/tty3 [root@server ~]# rm -f /etc/event.d/tty4 [root@server ~]# rm -f /etc/event.d/tty5 [root@server ~]# rm -f /etc/event.d/tty6
หลังจากลบไฟล์แล้วต้องใช้คำสั่ง initctl เพื่อให้คอนฟิกใหม่มีผล ซึ่งต้องใช้คำสั่ง initctl เพื่อหยุดการรันโปรแกรมที่ละหน้าจอ
ตัวอย่างการรันคำสั่ง initctl เพื่อหยุดการรันโปรแกรมสำหรับหน้าจอคอนโซลที่ 3
[root@server ~]# initctl stop tty3 tty3 (stop) running, process 1595 tty3 (stop) pre-stop, (main) process 1595 tty3 (stop) stopping, process 1595 tty3 (stop) killed, process 1595 tty3 (stop) post-stop tty3 (stop) waiting
[root@server ~]# initctl status tty3 initctl: Unknown job: tty3
ใช้คำสั่ง ps ตรวจสอบอีกครั้งหลังจากการยกเลิกหน้าจอที่ 2-6 จะเห็นได้ว่าเหลือแค่โปรเซสเดียวเท่านั้น ไว้รองรับหน้าจอคอนโซลที่ 1 ซึ่งเป็นดีฟอลต์นั่นเอง
คำเตือน ไม่แนะนำให้ลบนะครับหน้าจอคอนโซลที่ 1
[root@server ~]# ps auxw | egrep "(USER|min)" USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 11095 0.0 0.0 1812 428 tty1 Ss+ 20:16 0:00 /sbin/mingetty tty1
ยกเลิกการกดปุ่ม [Ctrl-Alt-Del] เพื่อการรีบู๊ตเครื่อง
หลายคนที่ใช้ Windows บ่อยๆ อาจติดนิสัยกดปุ่ม [Ctrl-Alt-Del] เพื่อทำการล๊อคหน้าจอ หรือเพื่อดู Task Manager ซึ่งถ้าพลาดมากดปุ่มนี้บนหน้าจอคอนโซลของลินุกซ์ โดยดีฟอลต์แล้วจะทำให้เครื่องลินุกซ์ถูกรีบู๊ตไป เป็นอันตรายอย่างยิ่ง ดังนั้นแนะนำให้ยกเลิกคุณสมบัตินี้ออกไป
วิธีการยกเลิกการกดปุ่ม [Ctrl-Alt-Del] เพื่อการรีบู๊ตเครื่องนั้น ทำได้สองวิธีขึ้นอยู่กับเวอร์ชั่นของลินุกซ์ที่ใช้ เช่นเดียวกับการยกเลิกการรันหน้าจอคอนโซล
ยกเลิกการกดปุ่ม [Ctrl-Alt-Del] เพื่อการรีบู๊ตเครื่อง สำหรับ Fedora ก่อนเวอร์ชั่น 9
ไฟล์คอนฟิกที่ทำให้เครื่องลินุกซ์ถูกรีบู๊ตเมื่อกดปุ่ม [Ctrl-Alt-Del] จะถูกเก็บอยู่ในไฟล์ /etc/inittab
ตัวอย่างไฟล์คอนฟิก /etc/inittab ในส่วนการกดปุ่ม [Ctrl-Alt-Del]
# Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now
จากคอนฟิกเมื่อมีการกดปุ่ม [Ctrl-Alt-Del] เครื่องจะรันคำสั่ง shutdown เพื่อรีบู๊ตเครื่อง
การยกเลิกไม่ให้รีบู๊ต ให้แก้ไขไฟล์คอนฟิกนี้ โดยใส่เครื่องหมาย # ก่อนหน้าบรรทัดที่มีคำว่า ca หรือจะลบบรรทัดนี้ทิ้งไปเลยก็ได้เช่นกัน แล้วรันคำสั่ง init q เพื่อให้โปรเซส init อ่านไฟล์ /etc/inittab ใหม่ให้มีผลทันที
ตัวอย่างการแก้ไขไฟล์ /etc/inittab เพื่อไม่ให้รีบู๊ต
# Trap CTRL-ALT-DELETE #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
ยกเลิกการกดปุ่ม [Ctrl-Alt-Del] เพื่อการรีบู๊ตเครื่อง สำหรับ Fedora 9
ไฟล์คอนฟิกในเวอร์ชั่นนี้จะเก็บแยกเป็นไฟล์ชื่อ /etc/event.d/control-alt-delete
ตัวอย่างไฟล์ /etc/event.d/control-alt-delete
[root@server event.d]# cat control-alt-delete # control-alt-delete - emergency keypress handling # # This task is run whenever the Control-Alt-Delete key combination is # pressed. Usually used to shut down the machine.
start on control-alt-delete
exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
การแก้ไขทำได้โดยลบไฟล์นี้ทิ้งไป และจะมีผลทันที
[root@server ~]# initctl status control-alt-delete initctl: Unknown job: control-alt-delete
สามารถทดสอบได้โดยการกดปุ่ม [Ctrl-Alt-Delete] อีกครั้ง เครื่องจะไม่รีบู๊ตอีกต่อไป