Мне нужно запускать sudo service postgresql start
каждый раз когда я запускаю Ubuntu на WSL2.
Как сделать так, чтобы служба запускалась автоматически при запуске Ubuntu?
WSL не использует systemd, поэтому sudo systemctl enable postgresql
не работает.
$ sudo systemctl status postgresql
System has not been booted with systemd as init system (PID 1).
Can't operate. Failed to connect to bus: Host is down
Есть ли стандартный способ запуска службы при запуске?
Я хочу запускать службу при запуске Ubuntu, а не при запуске Windows.
В WSL, IMHO, есть более простой способ, чем добавить команду sudo
в свой запуск и беспокоиться о sudoers
.
sudoers
, безусловно, канонический (без каламбура, просто счастливый случай) способ сделать это в Ubuntu, но на WSL просто проще использовать следующий синтаксис в вашем ~ / .bashrc
:
wsl.exe -u root service postgresql status || wsl.exe -u root service postgresql start
wsl.exe -u root
не требует пароля. Из PowerShell и CMD его можно вызывать без exe
, но изнутри WSL для этого требуется расширение.