# ตั้งค่าให้ WSL รัน background และ Auto Run

เราต้องทำให้ WSL ทำงานตลอดเวลา ( background ) และ systemd ทำงานเอง ( Auto Run ) เมื่อ Windows เริ่มต้นใหม่

# เทคนิคพิเศษ ! ตั้งค่าให้ Linux รันตลอดเวลา ( bandground ) แม้จะปิดหน้าต่าง Linux Terminal

ปัญหาสำคัญในการรัน systemd บน WSL คือ เมื่อลูกค้าปิดหน้าต่าง Linux Terminal แล้วซักพัก Linux ตัวนั้นก็จะหยุดทำงาน ( Stopped )

### นั่นทำให้ systemd หยุดทำงานไปด้วย

ลูกค้าลองปิดหน้าต่าง Linux แล้วรอซักครู่นะพบว่า Linux หยุด Stopped เอง

[![2024-04-07_12-43-50.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/xeO39E5gvMxyBFSi-2024-04-07-12-43-50.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/xeO39E5gvMxyBFSi-2024-04-07-12-43-50.jpg)

### 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
```

[![2024-04-07_14-25-20.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/qXbKG3oq57t6eav0-2024-04-07-14-25-20.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/9TqnN85Q6lUN3Ad3-2024-04-07-14-25-20.jpg)

แล้วกดปุ่ม Ctrl+X และ Y และ Enter เพื่อ save ไฟล์

3\. เปิดหน้าต่าง Linux เพิ่มขึ้นมาใหม่ แล้วพิมพ์ดูว่า tmux ถูกสร้าง session ไว้แล้วยัง

$ tmux ls

[![2024-04-07_14-29-53.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/vdeTj8B6BcasnMHk-2024-04-07-14-29-53.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/vdeTj8B6BcasnMHk-2024-04-07-14-29-53.jpg)

จะพบว่า tmux ถูกสร้างให้รัน background อย่างน้อย 1 session ทุกครั้งที่เราเปิดรัน Linux

วิธีนี้จะช่วยให้ Linux ไม่หยุดทำงาน ( Stopped ) เมื่อเราปิดหน้าต่าง Linux Terminal

4\. ลูกค้าลองปิดหน้าต่าง Linux Terminal แล้วรอซักพัก แล้วพิมพ์คำสั่งนี้ใน Windowns Terminal

[![2024-04-07_14-32-13.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/bEZ3mD6n8RSTf1zL-2024-04-07-14-32-13.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/bEZ3mD6n8RSTf1zL-2024-04-07-14-32-13.jpg)

ก็จะพบว่า Linux จะ Running ตลอดไป แม้เราจะปิดหน้าต่าง Linux Terminal แล้วก็ตาม

นั่นคือ application &amp; service ทุกๆตัวที่รันบน systemd ก็จะทำงาน background ตลอดไปด้วยเช่นกัน

> ฝากสนับสนุนบริการ www.Limitrack.com เพื่อให้พวกเราได้นำสิ่งดีๆมามอบให้ลูกค้าครับ

# เทคนิคพิเศษ ! ตั้งค่าให้ wsl รันเองอัตโนมัติ ( auto start ) เมื่อ Windows เริ่มต้นใหม่

##### \[ ก่อนจะทำตามหน้านี้ \]  


ลูกค้าต้องทำขั้นตอนนี้ก่อน &gt; [เทคนิคพิเศษ ! ตั้งค่าให้ Linux รันตลอดเวลา ( bandground ) แม้จะปิดหน้าต่าง Linux Terminal](http://docs.limitrack.com/books/docker-wsl-windows-subsystem-for-linux/page/linux-bandground-linux-terminal)

### ตั้งค่าให้ wsl รันเองอัตโนมัติ ( auto start ) เมื่อ Windows เริ่มต้นใหม่

หากเราต้องการให้ systemd ( ใน WSL ) รันพร้อมๆกันกับ Windows ก็ทำได้เช่นกัน โดยสร้าง Task Schedule เพื่อให้รัน Linux ตอนที่ Windows เริ่มใหม่ ดังนี้

1\. เปิดโปรแกรม Task Schedule

[![2024-04-07_12-50-08.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/bbOW8qkH8reX0306-2024-04-07-12-50-08.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/bbOW8qkH8reX0306-2024-04-07-12-50-08.jpg)

2\. กด Create Task เพื่อสร้าง Job ใหม่

[![2024-04-07_15-22-39.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/Y6Y7Z2prUJ8SO23y-2024-04-07-15-22-39.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/Y6Y7Z2prUJ8SO23y-2024-04-07-15-22-39.jpg)

3\. แถบ General ทำตามภาพนี้

[![2024-04-07_15-24-14.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/rfIE2QngCSZJ7tQL-2024-04-07-15-24-14.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/rfIE2QngCSZJ7tQL-2024-04-07-15-24-14.jpg)

4\. แถบ Triggers กดปุ่ม New

[![2024-04-07_15-28-05.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/hvvyjQtz7vOxzlXN-2024-04-07-15-28-05.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/hvvyjQtz7vOxzlXN-2024-04-07-15-28-05.jpg)

5\. แถบ Action กดปุ่ม New แล้วพิมพ์คำสั่งรัน Linux distro ที่ต้องการนี้ลงไป

```
C:\Windows\system32\wsl.exe -d Ubuntu-22.04
```

ต้องแยกระหว่าง wsl.exe และ -d Ubuntu-22.04 ไว้คนละช่อง ดังภาพ

[![2024-04-07_15-29-44.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/x7NNO7n43xTy7Ijk-2024-04-07-15-29-44.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/x7NNO7n43xTy7Ijk-2024-04-07-15-29-44.jpg)

6\. หน้า Conditions เอาติ๊กถูกออกให้หมด

[![2024-04-07_15-31-08.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/VI9ILlCb8JEr6NDJ-2024-04-07-15-31-08.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/VI9ILlCb8JEr6NDJ-2024-04-07-15-31-08.jpg)

7\. หน้า Settings ตั้งค่าตามภาพนี้

[![2024-04-07_15-32-36.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/MX8sFiSu1D2LJP6A-2024-04-07-15-32-36.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/MX8sFiSu1D2LJP6A-2024-04-07-15-32-36.jpg)

แล้วกดปุ่ม OK

8\. หลังจากลูกค้า restart Windows เมื่อเข้า Windows มาใหม่แล้วจะพบว่า Linux Ubuntu-22.04 รันเอง Auto แล้ว

[![2024-04-07_12-45-59.jpg](http://docs.limitrack.com/uploads/images/gallery/2024-04/scaled-1680-/9mWwld2La0hOB32A-2024-04-07-12-45-59.jpg)](http://docs.limitrack.com/uploads/images/gallery/2024-04/9mWwld2La0hOB32A-2024-04-07-12-45-59.jpg)

และ application &amp; service ที่เรารันใน systemd ก็จะทำงานด้วยเช่นกัน

> ฝากสนับสนุนบริการ www.Limitrack.com เพื่อให้พวกเราได้นำสิ่งดีๆมามอบให้ลูกค้าครับ