概要
以下、自分用のメモです。
いつのまにか Windows 10 でもWSLから Linux GUIアプリ と systemd が使えるようになっていたんですね。
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 で起動してくれていますね。
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。