WSL コンソールで EXE を起動できない

WSL コンソールで EXE を起動できない

WSL コンソールを開き (スタート メニューのアプリ アイコンをクリックして)、Windows exe を起動すると、ハングします。Linux 側のプロセス リストに新しいプロセスが表示されますが、Windows タスク マネージャーでは見つかりません。

ただし、PowerShell、CMD ( を呼び出すことによってwsl.exe bash -l any_windows_program.exe)、IDE の埋め込みターミナルなど、他のコンソールで WSL を起動すると、すべて正常に動作します。

なぜ?


背景:

私は Microsoft Store の KALI ディストリビューションを使用しています。数日前までは動作していましたが、最近は何も更新していません。


編集:

エクスプローラーも正常に動作していないことに気付きました。通常、新しいファイルまたはフォルダーを作成すると、すぐにエクスプローラーに表示されます。しかし、今日は F5 キーを押すまで表示されませんでした。

エクスプローラーを再起動しようとしましたが、停止しましたが、再起動せず、その後、すべてのプロセス ウィンドウがフリーズしました (マウス/キーボード操作に応答しませんでした)。

再起動すると、これらの問題はすべて解決します。カーネルまたはドライバーのバグのようです。

答え1

ただの考えですができたこれは、Windows ホストが休止状態または「高速スタートアップ」オプション (これも休止状態の一種) で電源がオフになっているときに WSL で発生するネットワークの問題に関連している可能性があります。

それが可能性がある場合、2 つの推奨事項があります。

  • Windows の高速スタートアップをオフにします ( の下Control Panel\Hardware and Sound\Power Options -> Choose what the power buttons do)。
  • 休止状態になった後 (必要な場合)、Kali を終了し、wsl --shutdownPowerShell、CMD、または Windows のスタート メニューから を実行します。

とはいえ、アプリ アイコンから起動した場合にのみ発生するという事実は、少し疑わしいものです。これは、 に問題があることを示している可能性があります~/.bashrc。 を実行すると、wsl.exe bash -l any_windows_program.exe対話型スタートアップ ( ) はスキップされますが、ログイン シェル ( )として指定したため、~/.bashrcが実行されます。~/.bash_profile-l

問題が再発する場合は、wsl bash -li any_windows_program.exe代わりに を試して、対話型起動が原因であるかどうかを確認してください。

関連情報