WSL2上のUbuntuのサービスを自動起動する方法
更新日:
ルナリス
WSL2上のUbuntuのサービスを自動起動する方法を解説するわ
サービス??
ソルト
ルナリス
サーバーの機能みたいなものよ
なるほど!
ソルト
目的
Ubuntuではサービスの自動起動設定に「systemctl」というコマンドを使用しますが、WSL2では使用することができません。
よって、今回は別の方法でサービスの自動起動設定を行います。
・Ubuntuのサービス例
- apache2
- mysql
など
準備
次の2点をそれぞれ調べて行きましょう。
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サービスの起動をする方法を解説しました。
自動化しないといちいち起動するコマンドが必要になりますのでぜひ設定してみて下さい!
コメント一覧