В недавнем выпуске Windows 11 есть два предпочтительных способа сделать это.
Windows 11
Теперь вы можете выполнить произвольную командную строку при запуске экземпляра, создав/отредактировав /etc/wsl.conf
(через sudo) со следующим:
[ботинок]
command="запуск службы postgresql"
Эта команда запускается от имени пользователя root и не выводит никаких результатов. Если вам нужно запустить несколько команд, они должны быть разделены точкой с запятой (или что-то вроде &&
) внутри команда=
нить.
Windows 10
На WSL с Windows 10 есть еще более простой способ, ИМХО, чем ставить судо
команду в вашем запуске и беспокоиться о sudoers
.
sudoers
это, безусловно, канонический (не каламбур, просто счастливая случайность) способ сделать это в Ubuntu, но в WSL проще использовать следующий синтаксис в вашем ~/.bashrc
:
wsl.exe -u статус корневой службы postgresql || wsl.exe -u запуск корневой службы postgresql
wsl.exe -u корень
не требует пароля. Из PowerShell и CMD его можно вызвать без исполняемый
, но внутри WSL требуется расширение.
Примечание, за @mbomb007, это будет генерировать одно или два сообщения при каждом запуске. Чтобы подавить это, используйте:
wsl.exe -u статус корневой службы postgresql > /dev/null || wsl.exe -u корневая служба postgresql start > /dev/null