System has not been booted with systemd as init system と表示されてしまった」「Nginxをインストールして起動したいのに、systemctlコマンドが使えない」
このエラーの原因は一つです。WSL2のデフォルト設定では、systemdが無効になっています。でも、たった3行の設定変更で解決できます。
この記事では、WSL2でsystemdを有効化する具体的な手順を解説し、実際にNginxをインストールしてsystemctlコマンドで起動・停止するところまでをハンズオン形式で体験します。WindowsのブラウザでLinuxが動かすWebページが表示される瞬間を、初めて体験してみましょう。
この記事のポイント
・WSL2のsystemdは /etc/wsl.conf に [boot] systemd=true を追記して有効化する
・wsl --shutdown で一旦終了して再起動するとsystemdが利用可能になる
・sudo apt install nginx と systemctl start nginx で即座にWebサーバーが起動する
・Windows側のブラウザで http://localhost にアクセスするとNginxの画面が表示される
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
WSL2とsystemdの関係|なぜデフォルトで無効なのか
WSL2は「Windows上でLinuxカーネルを動かす」技術ですが、通常のLinuxサーバーとは少し構造が異なります。通常のLinux(VPSや実機)では、OSが起動するとすぐに systemd(システムとサービスを管理するプログラム)が立ち上がります。systemdがいることで、
systemctl start nginx のようにサービスを管理できます。一方、WSL2はWindowsから起動する関係上、以前はsystemdをそのまま動かすことができませんでした。2022年以降のWSL(バージョン0.67.6+)から、設定ファイルで有効化できるようになっています。
systemdが無効な状態では、Nginxなどのサービスを
service nginx start という旧来の書き方で起動することは可能ですが、systemctl を使うとエラーになります。有効化すると、VPSや本番サーバーと同じ操作感でLinuxを練習できます。| 状態 | 使えるコマンド | 特徴 |
|---|---|---|
| systemd無効(デフォルト) | service nginx start |
旧来の書き方。一部のサービスは動かない |
| systemd有効 | systemctl start nginx |
本番サーバーと同じ操作感で練習できる |
WSL2でsystemdを有効化する手順
1. WSLのバージョンを確認する
まず、お使いのWSLがsystemdに対応しているか確認します。Windowsのスタートボタンを右クリックして「PowerShell」または「ターミナル」を開き、以下を実行します。
# WSLのバージョンを確認する wsl --version
WSL バージョン: 2.2.4.0 カーネル バージョン: 5.15.153.1-2 WSLg バージョン: 1.0.61
wsl --update を実行してWSLを最新版に更新してください。2. /etc/wsl.conf を設定する
次に、WSL2の設定ファイルを作成・編集します。WSL2のターミナル(Ubuntuなど)を開き、以下を実行します。# /etc/wsl.conf をエディタで開く(ファイルが存在しない場合は新規作成される) sudo nano /etc/wsl.conf
[boot] systemd=true
Ctrl+O(保存)→ Enter → Ctrl+X(終了)の順に押してnanoを閉じます。3. WSL2を完全に終了して再起動する
設定を反映するには、WSL2を一度完全に終了する必要があります。【注意】
wsl --shutdown を実行すると、WSL2上で動いているすべてのプロセスが終了します。作業中のファイルは必ず保存してから実行してください。Windowsの「PowerShell」または「ターミナル」を開き、以下を実行します。
# すべてのWSL2インスタンスを停止する wsl --shutdown
4. systemdが動いているか確認する
WSL2を再起動したら、systemdが起動しているか確認しましょう。# systemdの状態を確認する systemctl status
State: running または State: degraded と表示されていればsystemdは動いています。# 実行例(一部抜粋) State: running Units: 219 loaded (incl. 3 active) Jobs: 0 queued Failed: 0 units
NginxをインストールしてsystemctlでWebサーバーを動かす
systemdが有効になったら、実際にNginx(ウェブサーバー)をインストールして、Windowsのブラウザからアクセスするまでを体験します。1. aptコマンドでNginxをインストールする
Nginxのインストールは、パッケージマネージャーのaptコマンド一行で完了します。# パッケージ情報を最新の状態に更新する sudo apt update # Nginxをインストールする sudo apt install -y nginx
2. systemctlでNginxを起動する
インストールが完了したら、systemctlコマンドでNginxを起動します。# Nginxを起動する sudo systemctl start nginx # Nginxの状態を確認する sudo systemctl status nginx
Active: active (running) と表示されていれば起動成功です。# 実際のsystemctl status nginx 出力例 nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2026-07-20 09:15:32 JST; 8s ago Docs: man:nginx(8) Main PID: 1234 (nginx) Tasks: 2 (limit: 9321) Memory: 3.5M CPU: 12ms CGroup: /system.slice/nginx.service |-1234 "nginx: master process /usr/sbin/nginx -g daemon on;" `-1235 "nginx: worker process"
3. WindowsのブラウザからNginxにアクセスする
Nginxが起動したら、WindowsのChromeやEdgeなどのブラウザを開き、アドレスバーに以下を入力してEnterキーを押します。・アドレスバーに入力: http://localhost
「Welcome to nginx!」という文字が表示されれば、WSL2上のLinuxがWebサーバーとして動いていることが確認できます。
もし表示されない場合は、WSL2のIPアドレスを確認して試してみてください。
# WSL2に割り当てられたIPアドレスを確認する hostname -I # 出力例: 172.25.xxx.xxx # またはipコマンドで確認する ip addr show eth0 | grep "inet " # 出力例: inet 172.25.xxx.xxx/20 brd 172.25.xxx.xxx scope global eth0
4. systemctlでNginxを停止・自動起動設定する
起動の確認ができたら、停止・再起動・自動起動の設定も練習しましょう。# Nginxを停止する sudo systemctl stop nginx # Nginxを再起動する(設定変更後に使う) sudo systemctl restart nginx # Nginxを自動起動設定する(WSL2起動時に自動でNginxが起動するようになる) sudo systemctl enable nginx # 自動起動の設定を解除する sudo systemctl disable nginx
enable を設定しておくと、次回WSL2を起動したときに自動でNginxが立ち上がります。本番サーバーでの操作と同じ手順なので、実務に直結する感覚が身につきます。systemctlの基本コマンド一覧
Nginx以外のサービスでも使う、systemctlの基本コマンドをまとめます。| やりたいこと | コマンド |
|---|---|
| サービスを起動する | sudo systemctl start サービス名 |
| サービスを停止する | sudo systemctl stop サービス名 |
| サービスを再起動する | sudo systemctl restart サービス名 |
| サービスの状態を確認する | sudo systemctl status サービス名 |
| 自動起動を有効にする | sudo systemctl enable サービス名 |
| 自動起動を無効にする | sudo systemctl disable サービス名 |
| systemd全体の状態を確認する | systemctl status |
トラブルシュート|よくあるエラーと対処法
「System has not been booted with systemd as init system」エラーが出る場合
systemdが有効化されていない場合に出るエラーです。以下の手順で確認してください。・確認1: /etc/wsl.conf の内容を確認する
cat /etc/wsl.conf # 以下のように [boot] と systemd=true が両方含まれているか確認する # [boot] # systemd=true
・確認3: WSLのバージョンが 0.67.6 以上か確認する(wsl --version で確認)
これらを確認して再度起動しても解決しない場合は、Windowsを再起動してから試してみてください。
「Active: failed」が表示されてNginxが起動しない場合
ポート80が既に使用中の場合に起きることがあります。# 80番ポートを使っているプロセスを確認する sudo ss -tlnp | grep :80 # 出力例(別のプロセスが使用中の場合) LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("apache2",pid=xxx,fd=6))
# apache2が原因の場合は停止する sudo systemctl stop apache2 # その後、Nginxを再度起動する sudo systemctl start nginx
# Nginxのエラーログを確認する sudo journalctl -u nginx --no-pager -n 20
本記事のまとめ
WSL2でsystemdを有効化するポイントをまとめます。| 手順 | 内容 |
|---|---|
| 1. バージョン確認 | wsl --version でWSLが0.67.6以上か確認する |
| 2. 設定ファイル編集 | /etc/wsl.conf に [boot] systemd=true を追記する |
| 3. WSL2再起動 | PowerShellで wsl --shutdown を実行し、再度起動する |
| 4. systemd確認 | systemctl status で State: running を確認する |
| 5. Nginxインストール | sudo apt install -y nginx でインストールする |
| 6. サービス起動 | sudo systemctl start nginx で起動する |
| 7. ブラウザ確認 | Windowsのブラウザで http://localhost にアクセスする |
systemctl コマンドをWindows環境で何度でも練習できるので、実務に直結するLinuxの感覚が身につきます。次のステップとして、Nginxの設定ファイルを書き換えてバーチャルホストを設定したり、MySQLをsystemctlで管理したりすることで、Linuxサーバー管理の実践的なスキルが着実に積み上がっていきます。
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
次に読む記事
WSL2でのサービス管理をさらに深く学ぶための関連記事です。・systemctlコマンドの使い方|サービスの起動・停止・自動起動設定
・journalctlコマンドでsystemdのログを確認する方法|日時指定・ユニット絞り込み・リアルタイム監視も
・tail -fコマンドでログをリアルタイムに監視する方法|grepフィルタやローテーション対策も
・curlコマンドでHTTP通信を行う方法|GET・POSTやヘッダー確認も
・ssコマンドでソケット情報を確認する方法|LISTEN・ESTABの見方やポート確認も
・nginxコマンドの使い方|インストールから設定・バーチャルホスト・リバースプロキシまで
・firewall-cmdコマンドでポートを開放・管理する方法|ゾーン・サービス・永続化の使い分け
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 前のページへ:初心者がLinuxを学ぶ環境の選び方|WSL2・VirtualBox・VPS・Codespacesを比較する入門ガイド
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます