Ubuntu は init.d のスクリプトも使えるみたい
Ubuntu で systemd を使わずにサービスを起動する方法で /etc/init.d/ のスクリプトを呼び出してるのを見つけた
mysql の起動だと

/etc/init.d/mysql start

Ubuntu は systemd で管理されてるから /etc/init.d/ には何もないと思ってたけどインストールしてみるとスクリプトが配置されてた
こういうサービス共通で起動・停止できる方法があると WSL や Docker コンテナでサービスを動かすときにすごく楽になりそう

これまではサービスごとの方法でコマンドを実行してたから面倒だった
mysql だと最初に mariadb-install-db して起動は mysqld_safe
Apache や Nginx や PHP-FPM などの複数サービスでそれぞれ方法があるから全部覚えるのも大変

さっそく使ってみようとしたけど Ubuntu 限定だったみたい
CentOS 系だと /etc/init.d/ の中は空のままだった
WSL の Ubuntu 22.04 が出た
早速入れようとしたけど wsl --install コマンドだと無効なディストリビューションって言われる
ストアにはあるのに
リストを表示すると出てこない

PS C:\windows\system32> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
既定の分布は ' * ' で表されます。
'wsl --install -d <Distro>'を使用してインストールします。

NAME FRIENDLY NAME
* Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
openSUSE-42 openSUSE Leap 42
SLES-12 SUSE Linux Enterprise Server v12
Ubuntu-16.04 Ubuntu 16.04 LTS
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS

ちょっと前に出た almalinux もないしストアが更新されても WSL 自体が更新されるまでリストは変わらない?

Ubuntu を入れると最新のエイリアスになってて 22.04 が入ることを期待して Ubuntu ディストリビューションを選んだけど インストールされたのは 20.04 だった

今のところはストアから入れるか 20.04 をアップデートしかなさそう
WSL の Ubuntu のアップグレードができない
WSL で使っていた Ubuntu が以前のバージョンのままだったのでアップグレードしようとしました
LTS 間でのアップグレードなので問題もないと思っていたのですが問題が起きました

「do-release-upgrade」 コマンドが途中で止まります
最後に表示されるメッセージはこれです

Reading state information... Done

何度試してもここで止まります
ログファイルを見てみてもエラーらしいものが見つかりません

以前に別の PC で Ubuntu を更新したときも同じコマンドを使ったはずで そのときは何も問題なく更新できたと思うのですけどね

ぐぐってみるとこんなページがありました
https://github.com/microsoft/WSL/discussions/3489

snapd を消すと動くという報告があります

apt remove snapd

これを実行してからもう一度 do-release-upgrade コマンドを実行してみます
すると 次に進みました!

上のページでは 18.04 へのアップグレードですが 私は 20.04 へのアップグレードでした
バージョン問わず do-release-upgrade 使う場合に起きる問題のようです

snapd を調べてみると パッケージマネージャでした
そういえば GUI インストールした Ubuntu ではこの折り紙みたいなアイコンを見たことがあります
この WSL 環境では GUI アプリを試しに使ってみたことがあり snapd が入ってたようです
以前問題なく更新できた環境だと GUI を入れてなかったから snapd も入ってなかったのかもしれません