VS Code で WSL に接続した際に「VS Code Server for WSL closed unexpectedly」エラーが発生し、~/.vscode-server ディレクトリを削除してから再接続すると解消された。この対処法が有効である根本的な理由として、最も適切なものはどれか。
解説
正解は「VS Code Server が自動で再インストールされるから」です。VS Code の Remote Development 機能は、接続先(WSL・SSH・コンテナなど)に VS Code Server というヘッドレスなサーバープロセスを自動的にインストール・起動するアーキテクチャを採用しています。つまり ~/.vscode-server を丸ごと削除しても、次回接続時に VS Code クライアントが適切なバージョンのサーバーを再配置してくれるため、破損や不整合が解消されます。選択肢Aは「Node.js の更新」を原因としていますが、VS Code Server は自前の Node.js ランタイムをバンドルしているため、システム側の Node.js バージョンは通常関係ありません。選択肢Bの「ネットワークソケット設定」は ~/.vscode-server の役割として誤りです。選択肢Dの「双方の同期処理」も実際の動作とは異なります。VS Code Remote Development のクライアント・サーバーアーキテクチャVS Code を WSL や SSH で使う場合、Windows 上で動く VS Code はあくまでUIシェル(クライアント)です。ファイル操作、拡張機能の実行、ターミナル処理などは、すべてリモート側で動く VS Code Server が担当します。このアーキテクチャを理解しておくと、トラブル時に「問題はクライアント側か、サーバー側か」を切り分けられるようになります。~/.vscode-server の中身と削除の影響~/.vscode-server には主に以下が格納されています:bin/ — VS Code Server 本体のバイナリ(コミットハッシュごとのディレクトリ)extensions/ — リモート側にインストールされた拡張機能data/ — サーバー側の設定やキャッシュディレクトリを丸ごと削除すると拡張機能も消えるため、再接続後に拡張機能の再インストールが必要になります。サーバーバイナリだけをリセットしたい場合は ~/.vscode-server/bin/ のみ削除するのが実務的なアプローチです。削除しても直らない場合のチェックポイント~/.vscode-server の削除で解消しないケースでは、WSL 自体の問題を疑います。wsl --shutdown で WSL を完全に再起動する、wsl --update で WSL カーネルを更新する、あるいは dmesg で OOM Killer(メモリ不足による強制終了)が発動していないか確認するといった手順が有効です。特にメモリ制限は .wslconfig の memory 設定で調整できるため、サーバーが頻繁に落ちる場合は割り当てメモリの見直しも検討してください。