Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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):
Pastikan versi WSL Anda adalah 0.67.6 atau yang lebih baru:
- untuk memeriksa, jalankan
wsl --version; jika perintah menghasilkan kesalahanInvalid command line option: --version, anda harus memperbarui WSL; - untuk memperbarui, menjalankan
wsl --updateatau mengunduh versi terbaru dari Microsoft Store.
- untuk memeriksa, jalankan
Buka baris perintah untuk distribusi Linux Anda dan masukkan
cd /untuk mengakses direktori akar, lalulsuntuk 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.Tambahkan baris ini dalam file
wsl.confyang sekarang telah Anda buka untuk mengubah init yang digunakan untuk systemd:[boot] systemd=true
Keluar dari editor teks Nano (Ctrl + X, ketik Y untuk menyimpan perubahan Anda dan konfirmasi dengan kunci
enter).Anda kemudian perlu menutup distribusi Linux. Anda dapat menggunakan perintah
wsl.exe --shutdowndi PowerShell untuk memulai ulang semua instans WSL.Setelah Anda memulai ulang distribusi Linux, systemd akan berjalan. Anda dapat memverifikasinya dengan menggunakan perintah
systemctl statusuntuk menampilkan status yang berjalan dan perintahsystemctl 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.
tutorial Oliver berdasarkan demo ini di blog Ubuntu - termasuk "Gunakan snap untuk membuat instans Nextcloud dalam hitungan menit di WSL", "Kelola proyek web Anda dengan LXD", dan "Jalankan Bot .Net Echo sebagai layanan sistem di Ubuntu WSL"
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=serviceuntuk melihat layanan mana yang tersedia dan statusnya.
Beberapa tutorial terkait menunjukkan cara untuk menggunakan systemd:
Systemd Essentials: Bekerja dengan Layanan, Unit, dan Jurnal
Cara Melakukan Proses Kotak Pasir Dengan Systemd Pada Ubuntu 20.04
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.
Windows Subsystem for Linux