Bagikan melalui


Menggunakan systemd untuk mengelola layanan Linux dengan WSL

Subsistem Windows untuk Linux (WSL) sekarang mendukung systemd, sistem init dan manajer layanan yang digunakan oleh banyak distribusi Linux populer seperti Ubuntu, Debian, dan banyak lagi. (Apa itu systemd?).

Default sistem init baru-baru ini berubah dari SystemV, dengan systemd yang sekarang menjadi default untuk versi Ubuntu saat ini dan akan diinstal menggunakan perintah default wsl --install. Distribusi Linux selain versi Ubuntu saat ini mungkin masih menggunakan init WSL, mirip dengan SystemV init. Untuk beralih ke systemd, lihat Cara mengaktifkan systemd.

Apa itu systemd di Linux?

Menurut systemd.io: "systemd adalah rangkaian blok penyusun dasar untuk sistem Linux. Ini menyediakan sistem dan manajer layanan yang berjalan sebagai PID 1 dan memulai sisa sistem."

Terutama sistem init dan manajer layanan, systemd mencakup fitur seperti memulai daemon sesuai permintaan, pemeliharaan titik pemasangan dan automount, dukungan rekam jepret, dan pelacakan proses menggunakan grup kontrol Linux.

Sebagian besar distribusi Linux utama sekarang menjalankan systemd, jadi mengaktifkannya di WSL membawa pengalaman lebih dekat untuk menggunakan Linux bare-metal. Lihat pengumuman video dengan demo systemd atau contoh menggunakan systemd di bawah ini untuk mempelajari selengkapnya tentang apa yang ditawarkan systemd.

Bagaimana cara mengaktifkan systemd?

Systemd sekarang menjadi bawaan untuk versi Ubuntu saat ini yang akan diinstal dengan perintah wsl --install default.

Untuk mengaktifkan systemd untuk distribusi Linux lain yang berjalan di WSL 2 (mengubah default dari menggunakan systemv init):

  1. Pastikan versi WSL Anda adalah 0.67.6 atau yang lebih baru:

    • untuk memeriksa, jalankan wsl --version; jika perintah menghasilkan kesalahan Invalid command line option: --version, anda harus memperbarui WSL;
    • untuk memperbarui, menjalankan wsl --update atau mengunduh versi terbaru dari Microsoft Store.
  2. Buka baris perintah untuk distribusi Linux Anda dan masukkan cd / untuk mengakses direktori akar, lalu ls untuk mencantumkan file. Anda akan melihat direktori bernama "etc" yang berisi file konfigurasi WSL untuk distribusi. Buka file ini sehingga Anda dapat membuat pembaruan dengan editor teks Nano dengan memasukkan: nano /etc/wsl.conf.

  3. Tambahkan baris ini dalam file wsl.conf yang sekarang telah Anda buka untuk mengubah init yang digunakan untuk systemd:

    [boot]
    systemd=true
    

    Aktifkan systemd pada WSL 2

  4. Keluar dari editor teks Nano (Ctrl + X, ketik Y untuk menyimpan perubahan Anda dan konfirmasi dengan kunci enter).

  5. Anda kemudian perlu menutup distribusi Linux. Anda dapat menggunakan perintah wsl.exe --shutdown di PowerShell untuk memulai ulang semua instans WSL.

  6. Setelah Anda memulai ulang distribusi Linux, systemd akan berjalan. Anda dapat memverifikasinya dengan menggunakan perintah systemctl status untuk menampilkan status yang berjalan dan perintah systemctl list-unit-files --type=service, yang akan menampilkan status layanan apa pun yang terkait dengan distribusi Linux Anda.

Jika distribusi Linux Anda adalah Debian/Ubuntu/Kali Rolling, Anda seharusnya tidak hanya menginstal paket systemd, tetapi juga memastikan paket systemd-sysv diinstal.

sudo apt-get update -y && sudo apt-get install systemd systemd-sysv -y

Pelajari selengkapnya tentang konfigurasi pengaturan tingkat lanjut di WSL, termasuk perbedaan antara file konfigurasi wsl.conf (khusus distribusi) dan .wslconfig (global), cara memperbarui pengaturan automount, dll.

Video demo Systemd

Microsoft bermitra dengan Canonical untuk menghadirkan dukungan systemd ke WSL. Lihat Craig Loewen (PM untuk WSL di Microsoft) dan Oliver Smith (PM untuk Ubuntu di WSL di Canonical) mengumumkan dukungan sistem dan menunjukkan beberapa demo tentang apa yang diaktifkannya.

Contoh systemd

Beberapa contoh aplikasi Linux yang bergantung pada systemd adalah:

  • snap: sistem pengemasan dan penyebaran perangkat lunak yang dikembangkan oleh Canonical untuk sistem operasi yang menggunakan kernel Linux dan sistem systemd init. Paket disebut "snaps", alat baris perintah untuk membangun snaps disebut "Snapcraft", repositori pusat tempat snaps dapat diunduh/diinstal disebut "Snap Store", dan daemon yang diperlukan untuk menjalankan snaps (mengunduh dari Snap Store, memasang ke tempat, mengisolasi, dan menjalankan aplikasi dari sana) disebut "snapd". Seluruh sistem terkadang disebut sebagai "snappy." Coba jalankan perintah: snap install spotify.

  • microk8s: Kubernetes sumber terbuka, low-ops, produksi minimal yang mengotomatiskan penyebaran, penskalaan, dan manajemen aplikasi kontainer. Ikuti petunjuk untuk Menginstal MicroK8s di WSL2, lihat Tutorial Memulai , atau tonton video di Kubernetes di Windows dengan MicroK8s dan WSL 2.

  • systemctl: utilitas baris perintah yang digunakan untuk mengontrol dan memeriksa systemd dan untuk membantu Anda berinteraksi dengan layanan pada distribusi Linux Anda. Coba perintah: systemctl list-units --type=service untuk melihat layanan mana yang tersedia dan statusnya.

Beberapa tutorial terkait menunjukkan cara untuk menggunakan systemd:

Bagaimana mengaktifkan systemd berdampak pada arsitektur WSL?

Mengaktifkan dukungan untuk systemd memerlukan perubahan pada arsitektur WSL. Karena systemd memerlukan PID 1, proses init WSL yang dimulai dalam distribusi Linux menjadi proses turunan dari systemd. Karena proses init WSL bertanggung jawab untuk menyediakan infrastruktur untuk komunikasi antara komponen Linux dan Windows, mengubah hierarki ini diperlukan memikirkan kembali beberapa asumsi yang dibuat dengan proses init WSL. Modifikasi tambahan harus dilakukan untuk memastikan pematian bersih (karena pematian sekarang dikendalikan oleh systemd) dan untuk memastikan kompatibilitas dengan WSLg, komponen WSL yang menjalankan Antarmuka Pengguna Grafis Linux (GUI), atau aplikasi Linux yang ditampilkan di jendela daripada pada baris perintah.

Penting juga untuk dicatat bahwa dengan perubahan ini, layanan systemd TIDAK akan menjaga instans WSL Anda tetap hidup. Instans WSL Anda akan tetap hidup dengan cara yang sama seperti sebelumnya pada pembaruan ini, yang dapat Anda baca lebih lanjut di posting blog Dukungan Tugas Latar Belakang ini dari 2017.