Debian 上的 Postgres 服务器应该在 Windows 11 启动时运行。
Debian 安装使用
wsl --install Debian
Debian 中的 Postgres 使用
sudo apt install postgresql-12
创建/etc/wsl.conf
方式如下这个答案:
[boot]
command="service postgresql start"
创建了在启动时运行的任务计划程序任务。尝试从中运行命令
wsl
和
wsl -u root
我尝试运行 VB 脚本这里:
set object = createobject("wscript.shell")
object.run "wsl.exe", 0
但是,如果重新启动 Windows,WSL 和 Postgres 将不会启动。
解决方案这个答案似乎已经过时了,因为/etc/wsl.conf
应该用来在 WSL 中运行守护进程。
如果从命令行运行 VBS 脚本,则启动 Postgres 服务器。
如何在 Windows 11 启动时将 Debian/Postgres 作为服务运行?应该使用 SrvAny、NSSM 还是启动计划任务?
wsl --version
返回
Verze WSL: 1.0.3.0
Verze jádra: 5.15.79.1
Verze WSLg: 1.0.47
Verze MSRDC: 1.2.3575
Verze Direct3D: 1.606.4
Verze DXCore: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
verze Windows: 10.0.22621.1105
答案1
看来,当 WSL 被移至微软商店时,它就破坏了将其作为服务或计划任务启动的能力,因为它将不再在会话 0 中运行。
这些结论可以从与微软 Windows 子系统 Linux 团队的讨论中推断出来,在 github 上。
肯定会让它变得没那么有用。只有来自 MS 的信息表明他们正在努力解决这个问题。他们是否在努力还有待观察。
答案2
startWsl2Services.bat
您可以在 shell:startup 文件夹中创建一个批处理文件(Win-R,类型shell-startup
):
@echo off
echo "Starting Ubuntu-22.04..."
wsl -d Ubuntu-22.04 -u root service dbus start
echo "Done"
Debian
或者你想在用户登录后启动的任何发行版(在你的情况下)和服务