Δύο μεγάλες εταιρείες, η Microsoft και η Canonical, συνεργάστηκαν για να προσθέσουν το systemd στο Windows Subsystem for Linux, επιτρέποντας την εγκατάσταση μεγαλύτερου αριθμού συμβατών εφαρμογών.
Το systemd είναι μια εφαρμογή λογισμικού Linux που λειτουργεί ως διαχειριστής συστήματος και υπηρεσιών για την προετοιμασία daemons/υπηρεσιών κατά την εκκίνηση του λειτουργικού συστήματος. Το Systemd υποστηρίζει επίσης εργαλεία που επιτρέπουν στους διαχειριστές Linux να διαχειρίζονται και να ελέγχουν εύκολα αυτές τις υπηρεσίες, μετά την εκκίνησή τους.
Καθώς το systemd είναι υπεύθυνο για την εκκίνηση όλων των άλλων υπηρεσιών, εκτελείται ως η πρώτη διεργασία (PID 1) που δημιουργήθηκε από τον πυρήνα του Linux κατά την εκκίνηση. Στη συνέχεια, όλες οι άλλες υπηρεσίες αρχικής εκκίνησης ξεκινούν και διαχειρίζονται από το systemd, όπως φαίνεται από το δέντρο διεργασιών παρακάτω από το Ubuntu.
Από την άλλη πλευρά των λειτουργικών συστημάτων, το WSL (Windows Subsystem for Linux) χρησιμοποιεί αυτήν τη στιγμή το init ως διαχειριστή συστήματος και υπηρεσιών, και έτσι οι εφαρμογές Linux που απαιτούν systemd, όπως το Snap, το microk8s (Kubernetes) και το systemctl, δεν λειτουργούν σωστά.
Το WSL υποστηρίζει πλέον το systemd
Προχθές, η Microsoft και η Canonical ανακοίνωσαν ότι η τελευταία έκδοση του WSL (Υποσυστήματος Windows για Linux) στις εκδόσεις Windows 11 Insider υποστηρίζει πλέον το systemd, επιτρέποντάς σας να εγκαταστήσετε εφαρμογές που απαιτούν τη συγκεκριμένη διαχείριση υπηρεσιών.
Εάν εκτελείτε μια έκδοση Windows 11 Insider, μπορείτε να κάνετε αναβάθμιση στην προεπισκόπηση WSL 0.67.6 ή νεότερη έκδοση, χρησιμοποιώντας την εντολή wsl --update
. Μόλις ολοκληρωθεί η ενημέρωση, μπορείτε να ελέγξετε την εγκατεστημένη έκδοση χρησιμοποιώντας την αντίστοιχη εντολή wsl --version
.
Κατόπιν θα πρέπει να ενεργοποιήσετε το systemd εκκινώντας την επιθυμητή διανομή WSL Linux και προσθέτοντας τις ακόλουθες γραμμές στο /etc/wsl.conf:
[boot]
systemd=true
Καθώς ο φάκελος /etc ανήκει στον root, πρέπει να χρησιμοποιήσετε το sudo για τον επεξεργαστή κονσόλας, για να επεξεργαστείτε το αρχείο. Για παράδειγμα, sudo vi /etc/wsl.conf.
Θα πρέπει να σημειωθεί ότι αυτή η διαδικασία πρέπει να γίνει για κάθε διανομή που θέλετε να ενεργοποιήσετε το systemd.
Τέλος, κλείστε το παράθυρο WSL και από τη γραμμή εντολών των Windows 11 (Γραμμή εντολών ή PowerShell), κλείστε τις διανομές WSL με την εντολή wsl.exe --shutdown
και ξεκινήστε ξανά τη διανομή Linux και θα δείτε ότι το systemd εκτελείται ως PID 1.
Για περισσότερες πληροφορίες σχετικά με το πώς λειτουργεί το systemd στο WSL και πώς θα σας επιτρέψει να εκτελέσετε περισσότερες εφαρμογές στο WSL, μπορείτε να παρακολουθήσετε αυτό το βίντεο από τον Craig Loewen της Microsoft και τον Oliver Smith της Canonical.