sudo service postgresql start
每次在 WSL2 上启动 Ubuntu 时,我都需要运行。
启动 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 启动时启动。
在最近发布的 Windows 11 中,有两种首选方法可以做到这一点。
视窗 11
现在,您可以在启动实例时执行任意命令行,方法是
/etc/wsl.conf
使用以下命令创建/编辑(通过 sudo):此命令以 root 身份运行并且不生成任何输出。如果您需要运行多个命令,它们应该在字符串中用分号分隔(或类似的东西
&&
) 。command=
视窗 10
在带有 Windows 10 的 WSL 上,恕我直言,还有一种更简单的方法,而不是
sudo
在启动时输入命令并担心sudoers
.sudoers
当然是在 Ubuntu 上执行此操作的规范(没有双关语,只是一个快乐的意外)方式,但在 WSL 上,在您的 中使用以下语法更容易~/.bashrc
:wsl.exe -u root
不需要密码。在 PowerShell 和 CMD 中,可以在没有 . 的情况下调用它exe
,但在 WSL 中它确实需要扩展名。请注意,根据@mbomb007的评论,每次启动时都会生成一两条消息。要抑制这种情况,请使用: