WSLでsystemdを利用する前に acpid を無効にすること

ALL
スポンサーリンク

WSLでは /etc/wsl.conf で次を記述すると、systemd が利用可能になりますが、その前に、電源管理に関するデーモン acpid を無効化するようにしてください。
(既に systemd を有効にしていた場合も、acpid を無効化してください)

[boot]
systemd=true

そうしないと、/var/log/syslog に次のような、acpid のメッセージが出てCPUリソースを消費し、WSLの動作が非常に遅くなります。
(2909227 time の数字の部分はまちまちです)

message repeated 2909227 times: [ Condition check resulted in ACPI event daemon being skipped.]

WSLでは acpid は動作させても意味のないデーモンなので、無効化してしまいましょう。

acpid を無効化するには、次を実行します。

sudo ln -s /dev/null /etc/systemd/system/acpid.service
sudo ln -s /dev/null /etc/systemd/system/acpid.path

その後、WSL を再起動します。再起動は次の記事を参照してください。

WSL を再起動するには(wslコマンド) – パソコン鳥のブログ
WSL を再起動するには – パソコン鳥のブログ

参考

systemd running with 100% and does not respond · Issue #8867 · microsoft/WSL · GitHub

コメント