いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

WSLでGUIアプリとsystemdが使えるようになっていた

概要

以下、自分用のメモです。

いつのまにか Windows 10 でもWSLから Linux GUIアプリ と systemd が使えるようになっていたんですね。

learn.microsoft.com

WSLを起動したら以下のメッセージが表示されたので気づきました。

てことで、有効にした際のメモです。

やり方

WSLは既にインストール済みとします。

まずは、最新版にアップデートします。

コマンドプロンプトかpowershellを管理者権限で起動して、以下を実行します。

> wsl --update

終わったら

> wsl --version

とすると、こんな感じでバージョン情報が表示されます。

アップグレードした版ではない場合、--version というオプションが無いのでエラーになります。

ここまで来たら、後はGUIアプリをインストールしたら終わりです。

> wsl ~

$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install x11-apps -y

上のコマンドを実行後に

$ xeyes &

とすると、古き良き目玉のアプリが表示されます。素晴らしい。

systemd を有効にする

/etc/wsl.conf というファイルに設定を記載する必要があります。

$ sudo vim /etc/wsl.conf

でファイルを開く。存在しない場合は新規作成します。

んで、以下を追加。

[boot]
systemd=true

保存した後、一度WSLを再起動します。

Windows側に戻って、以下を実行。

> wsl --shutdown

これで完了。再度WSL側に入って ps で見てみると

> wsl ~


$ ps -ae | head
    PID TTY          TIME CMD
      1 ?        00:00:00 systemd
      2 ?        00:00:00 init
      5 ?        00:00:00 init
     50 ?        00:00:00 systemd-journal
     79 ?        00:00:02 systemd-udevd
     90 ?        00:00:00 snapfuse
     91 ?        00:00:00 snapfuse
     92 ?        00:00:00 snapfuse
    118 ?        00:00:00 systemd-network

という感じで systemd が pid 1 で起動してくれていますね。

参考情報

learn.microsoft.com

devblogs.microsoft.com

snowsystem.net


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。