วิธีเปิดใช้งาน systemd ในระบบย่อย Windows สำหรับ Linux (WSL)

ไม่ว่า systemd ใน Linux จะดีหรือไม่ดีนั้นก็ขึ้นอยู่กับว่าคุณคุยกับใคร แต่มันสำคัญมากจนบางส่วนของ ระบบย่อย Windows สำหรับ Linux (WSL) ชุมชนได้สร้างแนวทางของตนเองในการนำไปปฏิบัติ Microsoft ได้ดำเนินการเรียบร้อยแล้วแม้ว่าจะร่วมมือกับ Canonical เพื่อนำ systemd ไปใช้อย่างเป็นทางการใน WSL

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

systemd คืออะไร?

\ร\n https://www.youtube.com/watch? v=Ja3qikzd-as\r\n

คำอธิบายสั้น ๆ อย่างเป็นทางการของ systemd คือ:

Systemd คือชุดของเอกสารสำเร็จรูปพื้นฐานสำหรับระบบ Linux โดยจัดให้มีระบบและตัวจัดการบริการที่ทำงานเป็น PID 1 และสตาร์ทส่วนที่เหลือของระบบ

Linux distros ที่ได้รับความนิยมมากที่สุดบางตัวได้ใช้ systemd เป็นค่าเริ่มต้นในการติดตั้งแบบ Bare Metal แล้ว สิ่งเหล่านี้บางส่วน เช่น Ubuntu และ Debian นั้นมีอยู่ใน WSL เช่นกัน

การรวม systemd ไว้ใน WSL ทำให้เครื่องมือนี้ใกล้เคียงกับประสบการณ์การใช้งาน Linux แบบเนทีฟมากยิ่งขึ้น นอกจากนี้ยังจำเป็นสำหรับเครื่องมือบางอย่างที่ตอนนี้สามารถใช้งานได้ง่ายบน WSL เช่น snap, microk8s และ systemctl

สิ่งที่คุณต้องได้รับ systemd ใน WSL

หากคุณใช้ WSL เวอร์ชันใน Windows นั่นคือเวอร์ชันที่คุณเปิดใช้งานผ่าน PowerShell และไม่ได้ดาวน์โหลดจาก Store คุณจะไม่มี systemd ในตอนแรก เฉพาะผู้ที่ใช้ Insider build ของ Windows 11 หรือผู้ที่ใช้ WSL เมื่อดาวน์โหลดจาก Microsoft Store เท่านั้นจึงจะสามารถใช้งานได้ หมายเลขเวอร์ชันที่คุณต้องการคือ 0.67.6 ขึ้นไป

หากต้องการตรวจสอบว่าคุณมีเวอร์ชันที่ถูกต้องหรือไม่ เพียงเปิดหน้าต่าง PowerShell แล้วป้อน wsl --version และตรวจสอบการตอบกลับ หากต่ำกว่า 0.67.6 ให้ไปที่ Microsoft Store และ ดาวน์โหลด WSL. หรือคุณสามารถคว้ารุ่นล่าสุดได้จาก ที่เก็บ WSL GitHub.

ในอนาคต ผู้ใช้ทุกคนจะได้รับการสนับสนุน systemd เพิ่มเติม และคุณสามารถตรวจสอบการอัปเดต WSL ได้โดยเข้าไปที่ wsl --อัปเดต ใน PowerShell

หรือหากคุณใช้ Ubuntu Preview บน WSL systemd จะถูกเพิ่มโดยอัตโนมัติ

วิธีเปิดใช้งาน systemd

หากต้องการเปิดใช้งาน systemd อย่างน้อยตอนนี้ คุณจะต้องเพิ่มคำแนะนำให้กับคุณ wsl.conf ไฟล์. นี่คือไฟล์การกำหนดค่าที่พบในดิสโทร WSL Linux ใดๆ และอนุญาตให้คุณกำหนดค่าแบบรายดิสโทร แทนที่จะแก้ไขการตั้งค่า WSL ส่วนกลาง

มันเป็นไฟล์ข้อความธรรมดา คุณเพียงแค่ต้องเปิดมันขึ้นมาในโปรแกรมแก้ไขข้อความ ในตัวอย่างนี้ เราใช้นาโน เปิด wsl.conf ของคุณใน distro Linux ที่คุณเลือกโดยป้อนข้อมูลต่อไปนี้:

sudo nano /etc/wsl.conf

ตอนนี้คุณน่าจะกำลังดูเอกสารเปล่า เว้นแต่ว่าคุณจะสร้างไฟล์กำหนดค่าของคุณเองไว้ก่อนหน้านี้

หากต้องการเปิดใช้งาน systemd เพียงป้อนสิ่งนี้ลงในไฟล์ wsl.conf ของคุณ:

[boot]
systemd=true

ตอนนี้คุณสามารถบันทึกและออกจากไฟล์ได้ (CTRL+O เพื่อบันทึก และ CTRL+X เพื่อออก) จากที่นี่ คุณจะต้องปิดการปิดเซสชัน WSL ของคุณโดยสิ้นเชิง ปิด Linux และกลับไปที่หน้าต่าง PowerShell แล้วป้อน:

wsl.exe--shutdown

นี่จะเป็นการปิด WSL บนเครื่องของคุณโดยสมบูรณ์ ตอนนี้เพียงแค่เปิด Linux distro ของคุณอีกครั้ง การบูตครั้งแรกอาจใช้เวลานานกว่านั้นสองสามวินาที แต่เมื่อบูตเสร็จ ระบบจะยังทำงานอยู่ คุณสามารถตรวจสอบว่ามันใช้งานได้โดยใช้ systemctl หนึ่งในบริการที่ต้องอาศัย systemd:

systemctl list-unit-files --type=service

คุณควรเห็นรายการบริการที่ทำงานอยู่ในขณะนี้ นั่นคือทั้งหมดที่มีในการเปิดใช้งาน systemd และแน่นอน ด้วยการเปลี่ยนเป็น false ใน wsl.conf คุณสามารถปิดมันได้ตลอดเวลาหากต้องการ

การใช้ snap บน Ubuntu บน WSL

โบนัสเพิ่มเติมประการหนึ่งของการใช้ systemd บน Ubuntu บน WSL คือตอนนี้ snap ทำงานได้อย่างถูกต้องแล้ว ไม่ใช่ทุกคนที่จะใช้งาน แต่เป็นคุณลักษณะอื่นที่ผู้ใช้ WSL สามารถเข้าถึงได้ และมีแพ็คเกจ snap ที่มีประโยชน์ที่คุณอาจต้องการลองใช้

ตัวอย่างเช่น Nextcloud เป็นทางเลือกแบบโอเพ่นซอร์สแทน Microsoft 365 และแอปและพื้นที่เก็บข้อมูลบนคลาวด์ของ Google Nextcloud snap เป็นหนึ่งในวิธีที่ดีที่สุดในการติดตั้งบน Linux และตอนนี้เปิดบน WSL แล้ว การติดตั้ง snaps นั้นเหมือนกับการใช้ apt (หรือตัวจัดการแพ็คเกจอื่น ๆ ) แทนที่ snap:

sudo snap install nextcloud

คุณสามารถค้นหาสแนปที่มีอยู่ได้อย่างรวดเร็วโดยการตรวจสอบ snapcraft.io.