WSL Redis 遇到 System has not been booted with systemd as init system (PID 1)。不能操作

WSL Redis encountered System has not been booted with systemd as init system (PID 1). Can't operate

我正在尝试遵循此 article 数字海洋中讨论的 Redis 安装过程,用于 WSL(Windows Linux 的子系统)。安装的 Ubuntu 版本是 Ubuntu 18.04.

redis 安装中的一切都很好,但是当我尝试 运行 这个 sudo systemctl start redis 时,我收到了这条消息。

System has not been booted with systemd as init system (PID 1). Can't operate.

知道我应该用它做什么吗?

而是使用:sudo service redis-server start

我遇到了同样的问题,stopping/starting WSL Ubuntu 中的其他服务。这有效,而 systemctl 没有。

人们可能会想,"how would you know that the service name was 'redis-server'?" 您可以使用 service --status-all

查看它们

而不是使用

sudo systemctl start redis

使用:

sudo /etc/init.d/redis start

截至目前,我们在 WSL 中没有 systemd

或者有时它可能是 redis-server,例如:

>> sudo /etc/init.d/redis-server start
Starting redis-server: redis-server.

只需做一个 ls,例如:ls /etc/init.d

如果您使用的是 Docker,您可以使用此命令尝试使用已激活 System D 的 Ubuntu 映像:

docker run -d --name redis --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu:18.04

那么你只需要运行:

docker exec -it redis /bin/bash

在那里你可以安装 Redis,启动它,重新启动它或任何你需要的。

我有这个问题运行宁 WSL 2

解决方案是命令

 $ sudo dockerd

如果之后您仍然有权限问题,运行 命令:

 $ sudo usermod -aG docker your-user

这对我有用(使用 WSL)

sudo /etc/init.d/redis start

(对于任何其他服务,请检查 init.d 文件夹中的文件名)

对每个服务运行使用此命令 例如只写名称服务:

对于 xrdp :

sudo /etc/init.d/xrdp start

对于 redis :

sudo /etc/init.d/redis start

(对于任何其他服务,请检查 init.d 文件夹中的文件名)

我试图在 ubuntu 和 WSL 中开始 Docker。

这对我有用,

sudo service docker start

对于 WSL2,我必须安装 cgroupfs-mount,然后启动守护进程,如所述 here:

sudo apt-get install cgroupfs-mount
sudo cgroupfs-mount
sudo service docker start

这里完全是新手 - 在尝试了上述大部分建议后,对我有用的命令是 sudo service apache2 --full-restart 并且网络服务器启动了。

可能出现错误是因为我在没有 reboot/restart 的情况下遵循了很多设置说明。我正在使用 Apache2 Debian 在 WSL2 中开发 Ubuntu 20.04。