Открытие оболочки wsl из другого приложения Windows

Открытие оболочки wsl из другого приложения Windows

Я пытаюсь настроить Tower (клиент git) для запуска оболочки wsl bash. Я перепробовал кучу всего, но, похоже, это не предусмотрено.

введите описание изображения здесь

Что я пробовал:

command:     c:\windows\system32\wsl.exe
parameters:  bash -i

command:     c:\windows\system32\bash.exe
parameters:  -i

command:     c:\windows\system32\cmd.exe
parameters:  /c "bash -i"

command:     c:\windows\system32\bash.exe
parameters:  -i

command:     c:\WINDOWS\System32\windowspowershell\v1.0\powershell.exe
parameters:  wsl bash -i

command:     cmd 
parameters:  /c start start bash -i

command:     C:\Windows\SysWOW64\cmd.exe
parameters:  /c start start bash -i

Все они просто на очень короткое время открывают окно консоли, а затем возвращают в Башню.

Большинство этих команд работают из окна проводника...

windows cmd

решение1

Чтобы запустить 64-битный исполняемый файл из 32-битного процесса, например, запустить wsl.exe из Tower, вам необходимо использоватьsysnative перенаправитель файловой системы.

В этом случае выполните:%windir%\sysnative\wsl.exe

Вы можете проверить это, сначала запустив 32-разрядную версию Cmd, выполнив следующую команду в диалоговом окне «Выполнить» ( Windows+ R):%windir%\SysWoW64\cmd.exe

Затем внутри экземпляра Cmd вы можете выполнить следующее:

%windir%\sysnative\wsl.exe

Теперь вы должны увидеть 64-битную версию WSL, работающую на том же экземпляре консоли: введите описание изображения здесь

решение2

Похоже, этот обходной путь сработает:

command:    C:\WINDOWS\sysnative\WindowsPowerShell\v1.0\powershell.exe
parameters: wsl bash

Он запускает 64-разрядный экземпляр PowerShell для последующей загрузки подсистемы Windows для Linux.

Смотрите также:

введите описание изображения здесь


Альтернатива:

Другой вариант, который я нашел, — это использоватьwsl-terminal, но поскольку это зависит от стороннего терминала и целой кучи других зависимостей, лучше его не использовать.

Связанный контент