Skip to content

การรักษา WSL distro ให้ทำงานต่อเนื่อง ​

ผู้ใช้หลายคนที่เพิ่งเริ่มใช้ WSL2 มักเจอ "ความสงสัย" อย่างหนึ่ง: ติดตั้ง Linux เรียบร้อยแล้ว แต่ทำไมพอปิดเทอร์มินัลไปสักพัก มันก็ "ปิดเครื่องอัตโนมัติ" เสียอย่างนั้น? ทำไมมันไม่รันต่อเนื่องตลอดเวลา?

บทความนี้จะอธิบายปรากฏการณ์นี้ก่อน จากนั้นอธิบายว่าทำไม Microsoft ถึงออกแบบ WSL แบบนี้ และสุดท้ายแนะนำวิธีใช้ WSL Dashboard เพื่อเริ่มต้น distro ของ Linux แบบ keep-alive (รักษาให้ทำงานต่อเนื่อง)

1. สถานการณ์ปัจจุบัน: หลังปิดเทอร์มินัล Linux จะปิดตัวลงโดยอัตโนมัติในเวลาอันสั้น ​

คุณเคยเจอสถานการณ์แบบนี้ไหม?

  1. เปิดเทอร์มินัลของ distro Linux บางตัว Linux ก็ เริ่มทำงานโดยอัตโนมัติ โดยไม่ต้องรันคำสั่งใด ๆ
  2. หลังปิดหน้าต่างเทอร์มินัล Linux จะไม่รันต่อ — หลังจากนั้นประมาณ 60 วินาที มันจะถูกปิดโดยอัตโนมัติ
  3. เปิดเทอร์มินัลอีกครั้ง Linux ก็เริ่มทำงานอัตโนมัติอีก เป็นเช่นนี้วนไปเรื่อย ๆ

NOTE

"ค่า idle timeout" เริ่มต้นของ WSL2 อยู่ที่ประมาณ 60 วินาที: เมื่อไม่มีกระบวนการใดกำลังทำงานอยู่ใน distro (เช่นคุณปิดเทอร์มินัลทั้งหมด) เครื่องเสมือน WSL จะปิดตัวลงโดยอัตโนมัติเพื่อปลดปล่อยทรัพยากรระบบ เช่น หน่วยความจำ

พฤติกรรมนี้คือ การออกแบบตามค่าเริ่มต้น ของ WSL2 ไม่ได้เป็นความผิดพลาดหรือข้อบกพร่อง

2. ทำไม Microsoft ถึงออกแบบ WSL แบบนี้? ​

2.1 โดยพื้นฐาน WSL2 คือเครื่องเสมือนขนาดเบา ​

WSL2 ทำงานด้วยเคอร์เนล Linux เต็มรูปแบบผ่านเครื่องเสมือนขนาดเบา Hyper-V (utility VM) ทุก distro ที่กำลังรันอยู่จะ กินทรัพยากรหน่วยความจำจริง ๆ หาก distro ทั้งหมดพักอยู่เบื้องหลัง และเครื่องเดียวรันหลาย distro พร้อมกัน ก็จะสิ้นเปลืองหน่วยความจำหลายร้อย MB จนถึงหลาย GB อย่างเปล่าประโยชน์ ทำให้เครื่องทั้งระบบช้าลง

2.2 แนวคิดการออกแบบการจัดสรรทรัพยากรตามความต้องการ ​

ปรัชญาการออกแบบของ Windows คือ "จัดสรรทรัพยากรตามความต้องการ หมดความจำเป็นก็ปลดปล่อย":

  • สำหรับผู้ใช้ส่วนใหญ่: เปิดเทอร์มินัล = ต้องใช้ Linux; ปิดเทอร์มินัล = ยังไม่ต้องการ
  • มีเพียงผู้ใช้ส่วนน้อยเท่านั้นที่ต้องการให้ Linux รัน 7×24 ชั่วโมง อย่างไม่ขาดตอน

ดังนั้น WSL จึงใช้กลยุทธ์ "เริ่มต้นตามความต้องการ หยุดเมื่อว่าง" เพื่อให้หน่วยความจำและทรัพยากรอื่น ๆ ถูกคืนกลับสู่ระบบโดยอัตโนมัติเมื่อไม่จำเป็น

2.3 อุปมาอุปไมย: ปิดไฟเมื่อออกจากห้อง ​

การ "ปิดอัตโนมัติเมื่อว่าง" ของ WSL ก็เหมือนการปิดไฟเมื่อออกจากห้อง: ประหยัดไฟและมีประสิทธิภาพกว่า แต่สำหรับคนที่ "ต้องการให้ห้องสว่างตลอดเวลา" นี่เป็นเรื่องลำบาก — และนี่คือที่มาของความต้องการ keep-alive

TIP

หากคุณต้องการให้ Linux รันแบบถาวร (เช่น ปรับใช้บริการ รันงานตามกำหนด สร้างเซิร์ฟเวอร์สำหรับพัฒนา ฯลฯ) โปรดอ่านบทถัดไป และใช้ WSL Dashboard เพื่อให้ distro ทำงานต่อเนื่อง

3. ใช้ WSL Dashboard เริ่มต้น Linux แบบ keep-alive ​

WSL Dashboard มีสองวิธีง่าย ๆ ที่ช่วยให้ distro Linux ของคุณรันต่อไปได้

วิธีที่ 1: คลิกปุ่ม "เริ่มต้น" ​

ในรายการ "distro Linux ที่ติดตั้งแล้ว" ของ WSL Dashboard:

  1. ค้นหา distro ที่คุณต้องการให้ทำงานต่อเนื่อง
  2. คลิกปุ่ม "เริ่มต้น" ในแถวของ distro นั้น

หลังจากคลิก distro จะถูกปลุกขึ้นมาทันทีและรันต่อเนื่อง ตราบใดที่คุณไม่หยุดมันเอง มันก็จะไม่ถูกปิดโดยอัตโนมัติเพราะว่างเปล่า วิธีนี้เหมาะกับสถานการณ์ keep-alive ชั่วคราวเมื่อคุณต้องการให้ Linux รันตลอด "ตอนนี้"

วิธีที่ 2: เลือก "เริ่มต้นดิสโทรนี้อัตโนมัติเมื่อ Windows เริ่มทำงาน" ​

ในรายการ "distro Linux ที่ติดตั้งแล้ว" ของ WSL Dashboard:

  1. คลิกปุ่ม "การตั้งค่า" ในแถวของ distro เป้าหมายเพื่อเปิดหน้าต่างการตั้งค่า
  2. ในหน้าต่าง ให้เลือก "เริ่มต้นดิสโทรนี้อัตโนมัติเมื่อ Windows เริ่มทำงาน"
  3. บันทึกการตั้งค่า

เมื่อเลือกแล้ว ทุกครั้งที่ Windows เริ่มทำงาน/เข้าสู่ระบบ distro นั้นจะเริ่มทำงานโดยอัตโนมัติ โดยไม่ต้องดำเนินการใด ๆ ด้วยตนเอง เกิดเป็น "เริ่มเครื่องเมื่อไหร่ก็ทำงานต่อเนื่องทันที" วิธีนี้เหมาะกับสถานการณ์ที่ต้องการให้ Linux ออนไลน์ระยะยาว (เช่น เซิร์ฟเวอร์สำหรับพัฒนา บริการที่รันถาวร)

TIP

  • ต้องการแค่ชั่วคราว → ใช้ วิธีที่ 1 (คลิก "เริ่มต้น")
  • ต้องการออนไลน์ระยะยาว → ใช้ วิธีที่ 2 (เลือก "เริ่มต้นดิสโทรนี้อัตโนมัติเมื่อ Windows เริ่มทำงาน")