ตั้งค่าให้ WSL รัน background และ Auto Run
เราต้องทำให้ WSL ทำงานตลอดเวลา ( background ) และ systemd ทำงานเอง ( Auto Run ) เมื่อ Windows เริ่มต้นใหม่
- เทคนิคพิเศษ ! ตั้งค่าให้ Linux รันตลอดเวลา ( bandground ) แม้จะปิดหน้าต่าง Linux Terminal
- เทคนิคพิเศษ ! ตั้งค่าให้ wsl รันเองอัตโนมัติ ( auto start ) เมื่อ Windows เริ่มต้นใหม่
เทคนิคพิเศษ ! ตั้งค่าให้ Linux รันตลอดเวลา ( bandground ) แม้จะปิดหน้าต่าง Linux Terminal
ปัญหาสำคัญในการรัน systemd บน WSL คือ เมื่อลูกค้าปิดหน้าต่าง Linux Terminal แล้วซักพัก Linux ตัวนั้นก็จะหยุดทำงาน ( Stopped )
นั่นทำให้ systemd หยุดทำงานไปด้วย
ลูกค้าลองปิดหน้าต่าง Linux แล้วรอซักครู่นะพบว่า Linux หยุด Stopped เอง
Trick พิเศษ !
แอดมินค้นหาวิธีแก้ไม่ให้ Linux ( WSL ) หยุดการทำงาน ( Stopped ) เอง ได้โดยใช้เทคนิคการสั่งรัน tmux ค้างไว้ ดังนี้
เปิดหน้าต่าง Linux ที่ลูกค้าใช้งานขึ้นมาซักตัว
1. ติดตั้ง tmux ก่อน โดยพิมพ์คำสั่งนี้
$ sudo apt install tmux
2. สร้าง tmux ไว้ 1 session ( เพื่อให้ tmux ทำงาน background ) โดยพิมพ์คำสั่งนี้
$ nano ~/.bashrc
แล้วพิมพ์ 3 บรรทัดนี้ต่อท้ายล่างสุดของไฟล์ .bashrc
if ! tmux ls > /dev/null 2>&1; then
tmux new -d > /dev/null 2>&1
fi
แล้วกดปุ่ม Ctrl+X และ Y และ Enter เพื่อ save ไฟล์
3. เปิดหน้าต่าง Linux เพิ่มขึ้นมาใหม่ แล้วพิมพ์ดูว่า tmux ถูกสร้าง session ไว้แล้วยัง
$ tmux ls
จะพบว่า tmux ถูกสร้างให้รัน background อย่างน้อย 1 session ทุกครั้งที่เราเปิดรัน Linux
วิธีนี้จะช่วยให้ Linux ไม่หยุดทำงาน ( Stopped ) เมื่อเราปิดหน้าต่าง Linux Terminal
4. ลูกค้าลองปิดหน้าต่าง Linux Terminal แล้วรอซักพัก แล้วพิมพ์คำสั่งนี้ใน Windowns Terminal
ก็จะพบว่า Linux จะ Running ตลอดไป แม้เราจะปิดหน้าต่าง Linux Terminal แล้วก็ตาม
นั่นคือ application & service ทุกๆตัวที่รันบน systemd ก็จะทำงาน background ตลอดไปด้วยเช่นกัน
ฝากสนับสนุนบริการ www.Limitrack.com เพื่อให้พวกเราได้นำสิ่งดีๆมามอบให้ลูกค้าครับ
เทคนิคพิเศษ ! ตั้งค่าให้ wsl รันเองอัตโนมัติ ( auto start ) เมื่อ Windows เริ่มต้นใหม่
[ ก่อนจะทำตามหน้านี้ ]
ลูกค้าต้องทำขั้นตอนนี้ก่อน > เทคนิคพิเศษ ! ตั้งค่าให้ Linux รันตลอดเวลา ( bandground ) แม้จะปิดหน้าต่าง Linux Terminal
ตั้งค่าให้ wsl รันเองอัตโนมัติ ( auto start ) เมื่อ Windows เริ่มต้นใหม่
หากเราต้องการให้ systemd ( ใน WSL ) รันพร้อมๆกันกับ Windows ก็ทำได้เช่นกัน โดยสร้าง Task Schedule เพื่อให้รัน Linux ตอนที่ Windows เริ่มใหม่ ดังนี้
1. เปิดโปรแกรม Task Schedule
2. กด Create Task เพื่อสร้าง Job ใหม่
3. แถบ General ทำตามภาพนี้
4. แถบ Triggers กดปุ่ม New
5. แถบ Action กดปุ่ม New แล้วพิมพ์คำสั่งรัน Linux distro ที่ต้องการนี้ลงไป
C:\Windows\system32\wsl.exe -d Ubuntu-22.04
ต้องแยกระหว่าง wsl.exe และ -d Ubuntu-22.04 ไว้คนละช่อง ดังภาพ
6. หน้า Conditions เอาติ๊กถูกออกให้หมด
7. หน้า Settings ตั้งค่าตามภาพนี้
แล้วกดปุ่ม OK
8. หลังจากลูกค้า restart Windows เมื่อเข้า Windows มาใหม่แล้วจะพบว่า Linux Ubuntu-22.04 รันเอง Auto แล้ว
และ application & service ที่เรารันใน systemd ก็จะทำงานด้วยเช่นกัน
ฝากสนับสนุนบริการ www.Limitrack.com เพื่อให้พวกเราได้นำสิ่งดีๆมามอบให้ลูกค้าครับ