Open4

WSLあれこれ

えんぶんえんぶん

WSLの再起動

# ディストリビューションの一覧を表示
> wsl -l -v
# 停止
> wsl -t <dist_name>
# 再度terminalからWSLにつなぐなりすれば動き出す

# or

# 管理者権限のPowershellから実行
> Restart-Service LxssManager
えんぶんえんぶん

Windowsの環境変数がUbuntuの$PATHに含まれてる

https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config#interop

Ubuntu側の/etc/wsl.confファイル(なければ作る)に以下を記述

wsl.conf
[interop]
enabled = false
appendWindowsPath = false

ubuntuを再起動すると反映される。
ディストリビューションを閉じて8秒ほどたつと再起動されるのでwsl --list --runningコマンドで逐一起動しているディストリビューションがあるか確認し、起動しているディストリビューションがなければ再度ディストリビューションを起動すると設定が反映されてる

❯ wsl --list --running
実行中のディストリビューションはありません。

https://learn.microsoft.com/ja-jp/windows/wsl/wsl-config#the-8-second-rule

codeコマンドでVSCodeが起動しない

$ code .
Command is only available in WSL or inside a Visual Studio Code terminal.

codeコマンドで呼び出されているのは、vscode-serverでWindows側に入っているVSCodeではない。
これはappendWindowsPath = falseに設定してWindows側のPathがUbuntuに通っていないため。
従ってWindows側のVSCodeのパスをUbuntuの$PATHに追加してやればよい。

~/.bashrc
# パスは適宜変えてね
export PATH=$PATH:"/mnt/c/Users/username/AppData/Local/Programs/Microsoft VS Code/bin"

appendWindowsPath = trueに戻せない???

appendWindowsPathをfalseにした後trueに戻したけどPATHが変わらない。元に戻せない???