WSL2上のUbuntuのサービスを自動起動する方法

更新日:

ルナリス

ルナリス

WSL2上のUbuntuのサービスを自動起動する方法を解説するわ


サービス??

ソルト

ソルト


ルナリス

ルナリス

サーバーの機能みたいなものよ


なるほど!

ソルト

ソルト

目的

Ubuntuではサービスの自動起動設定に「systemctl」というコマンドを使用しますが、WSL2では使用することができません。
よって、今回は別の方法でサービスの自動起動設定を行います。
 

 
・Ubuntuのサービス例

  • apache2
  • mysql

 

 
など

準備

次の2点をそれぞれ調べて行きましょう。
 

 

  • WSL2で使用しているディストリビューション名
  • Ubuntuで起動したいサービス
  • WSL2のディストリビューションを確認

    WindowsのPowerShellで次のコマンドを実行して下さい。

    wsl -l -q
    

     

     
    「Ubuntu」または「Ubuntu バージョン名」があると思います。
    こちらの名前をメモしておいて下さい。
    ※複数ある場合は普段使っている方をメモして下さい。

    Ubuntuのサービス名を確認

    あらかじめ起動したいサービス名が分かっている方はスルーして大丈夫です。
     

     
    Ubuntuのターミナル上で以下のコマンドを実行して下さい。
    サービス一覧が表示されます。
    一覧を見て必要なサービス名をメモして下さい。
     

     

    service --status-all
    

     

     

     

     
    今回は「apache2, cron, mysql」の設定を行います。

    Windowsでバッチファイルを作成

    Windowsでバッチファイル(コマンドを実行するファイル)を作成し、Ubuntuサービスの自動起動を行います。
     

     
    下の例を参考にファイルを作成して下さい。
    今回は例として「apache2, cron, mysql」の起動を設定しました。
     

     
    ・設定例

    @echo off
    @if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof
    wsl -d Ubuntu -u root -- service apache2 start
    wsl -d Ubuntu -u root -- service cron start
    wsl -d Ubuntu -u root -- service mysql start
    

     

     
    3行目からがサービスを起動するコマンドとなります。
    次の2点に注意して編集して下さい。
     

     

    • Ubuntuの部分を自分のディストリビューション名に変更
    • 「service サービス名 start」で任意のサービスを設定

    バッチファイルをスタートアップに配置

    作成したバッチファイルをWindowsのスタートアップに配置することでサービスの自動起動をしてくれます。
    実際にバッチファイルをスタートアップに配置してみましょう。
     

     
    「Windowsキー + R」で「ファイル名を指定して実行」を開きます。

     

     
    「shell:startup」と入力し、OKを押すとスタートアップフォルダが開きます。
    ここにバッチファイルを配置しましょう。

     

     
    これでWindowsを起動するたびにUbuntuのサービスが自動起動するようになりました。

    まとめ

    今回はWindowsのバッチファイルからUbuntuサービスの起動をする方法を解説しました。
    自動化しないといちいち起動するコマンドが必要になりますのでぜひ設定してみて下さい!

    コメント一覧

    コメントを残す

    メールアドレスが公開されることはありません。