🐧

WSL 2 上の Debian で systemd を有効化する方法

2023/10/12に公開

tl;dr

WSL 2 上の Debian で systemd を有効化する方法を紹介します。
これにより、Linux デーモンを使ったソフトウェアを活用できます。

  1. /etc/wsl.conf[boot] セクションに systemd=true を追加
  2. wsl --terminate Debian として、Debian を停止
  3. Windows Terminal 上で Debian を起動

以上で、WSL2 上の Debian で systemd を使用可能になります。

はじめに

この記事では、WSL 2[1] 上の Debian で systemd[2] を有効化する方法を紹介します。
systemd は Linux のサービスやプロセスを管理するツールです。

WSL2 で systemd を有効にすることで、Linux の機能を Windows上でも活用できるようになります。

1. /etc/wsl.conf の設定

WSL では、/etc/wsl.conf を使って細かい動作を設定できます。
systemd の設定も同様です。

1.1 systemdの有効化

systemd を有効化するには、以下の手順で/etc/wsl.confに systemd の設定を追加します。

この記事では、テキストエディタvi[3]を使用して/etc/wsl.confを編集し、systemd の設定を追加します。
viエディタの詳しい使い方は、Vim日本語ドキュメントを参照してください。

次の手順にしたがって systemd を有効にします。

  1. vi エディタで/etc/wsl.confを編集
    bashで次のコマンドを実行します。

    sudo vi /etc/wsl.conf
    

    viエディタの起動

  2. /etc/wsl.confの設定
    /etc/wsl.confに次の設定を追加します

    /etc/wsl.conf
    [boot]
    systemd=true
    

    wslconfの設定

  3. /etc/wsl.confの保存
    ノーマルモード[4]:wq[5]と入力し、ファイルを保存します。

以上で、/etc/wsl.confの設定は終了です。
Debian を再起動すると、systemd が有効となります。

2. Debian の再起動

ここでは、systemd を有効化するために、WSL 2 上の Debian を再起動する方法を解説します。

2.1. Debianを再起動する

Windows Terminal [6]wslコマンド[7]を使い、Debian を再起動し、systemd を有効化します。

  1. Debian の停止
    wslコマンドで、Debian を停止します。

    wsl --terminate Debian
    

    Debian の停止

  2. Debian の再起動
    Windows Terminal上で Debian を選択して、Debian を再起動します。

以上で、Debian の再起動は完了しました。

おわりに

この記事では、WSL 2 上の Debian で systemd を有効化する手順を紹介しました。
systemd を有効にすることで、Linux 環境の多くのサービスやアプリケーションを Windows上でも利用できます。

開発やテスト環境が柔軟になりますので、是非 systemd を有効化し、WSL 2 を最大限に活用してください。

それでは、Happy Hacking!

参考資料

systemd

Microsoft Learn

viエディタ

脚注
  1. WSL: Windows Subsystem for Linux の略で、Windows 上で Linux を実行させるサブシステム ↩︎

  2. systemd: Linux のプロセス管理および初期化システム ↩︎

  3. vi: Linux上で広く使用されているテキストエディタ ↩︎

  4. ノーマルモード: viの編集モードの 1つで、コマンドを入力できるモード ↩︎

  5. :wq: viエディタで編集中のファイルを保存して終了させるコマンド ↩︎

  6. Windows Terminal: Windows上で複数のターミナルを管理するためのアプリケーション ↩︎

  7. wslコマンド: Windows Subsystem for Linuxを操作するためのコマンド ↩︎

GitHubで編集を提案

Discussion