ChatGPT解决这个技术问题 Extra ChatGPT

WSL Redis 遇到 System has not been booted with systemd as init system (PID 1)。无法操作[关闭]

关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 Stack Overflow 的主题。 8 个月前关闭。该帖子5个月前编辑提交审核,未能重新打开帖子:原始关闭原因未解决 改进此问题

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

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

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

关于我应该怎么做的任何想法?


c
charlie arehart

相反,使用:sudo service redis-server start

我遇到了同样的问题,在 WSL 上的 Ubuntu 中停止/启动其他服务。这行得通,而 systemctl 没有。

人们可能会想,“你怎么知道服务名称是‘redis-server’?”您可以使用 service --status-all 查看它们


是的..自从我写了这个问题以来,我也一直在使用它,评论中的那个也有一个帮助的评论
太好了,非常感谢。这适用于已安装在 WSL 环境中的大多数服务,而我们不能使用 systemctl 来启动|停止|重新启动服务。
鉴于这是评分最高的答案,很高兴看到这里发生的更多信息。据我了解,service 是一种抽象,可以退回到 init.d (sysv init) 或 systemd,正如问题所暗示的那样,它不起作用。 serverfault.com/questions/867322/…
fraleone,既然这是我的回答,我会尽力解决你的问题。需要明确的是,问题是关于尝试启动 Redis 的错误(特别是在 WSL 上),其中使用其他地方记录的通用启动命令 systemctl start redis 不适用于 OP。它也不适合我。我找到了这个替代方案(redis-server start)并来到这里提供它作为答案。我很高兴它帮助了其他人。但是我无法/无法解释“这里发生了什么”,或者为什么它与您的期望相反。您可能会发现更多,或者其他人可能会发现,请随意详细说明。
您还可以在启动时从“.profile”调用所需的命令,请参阅 docker “sudo systemctl enable docker” not available: Automatically run Docker at boot on WSL2 (using a “sysvinit” / “init” command or a workaround) 的类似问题,该问题还详细解释了为什么您需要在此处使用“服务”而不是 systemd。
M
Maifee Ul Asad

而不是使用

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


你知道它在 WLS 2 上是否可用吗?
通过快速搜索,WSL2 未使用 systemd 启动。这里有一个解决方法,虽然我没有测试过。 github.com/microsoft/WSL/issues/994#issuecomment-502055417
我如何在 Fedora / centos 图像中使用它。
sudo /etc/init.d/redis-server start 在所有其他命令都失败后修复了该问题。我在 WSL 上。
F
Felipe Augusto

我在运行 WSL 2 时遇到了这个问题

解决方案是命令

 $ sudo dockerd

如果在那之后您仍然有权限问题,请运行以下命令:

 $ sudo usermod -aG docker your-user

您还必须启动发行版。所以我有 2 个终端,一个运行 docker,另一个用于工作
您可以使用“sudo dockerd &”,并且不需要 2 个终端。
我得到sudo: dockerd: command not found
S
Sangeetha

我试图在 ubuntu 和 WSL 中启动 Docker。

这对我有用,

sudo service docker start


C
Carlos Saltos

如果您使用的是 Docker,您可以使用以下命令尝试具有系统 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,启动它,重新启动它或任何你需要的东西。


Docker 不会在 WSL 中运行。
@Aditya 它在 WLS 2 中
R
Rickmakeitquick

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

可能出现错误是因为我一直在遵循许多设置说明而没有重新启动/重新启动。我正在使用 Apache2 Debian 在 WSL2 中开发 Ubuntu 20.04。


a
amy8374

对于 WSL2,我必须安装 cgroupfs-mount,而不是启动守护程序,如 here 所述:

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

a
assayag.org

这对我有用(使用 WSL)

sudo /etc/init.d/redis start

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


m
mamal

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

对于 xrdp :

sudo /etc/init.d/xrdp start

对于 redis :

sudo /etc/init.d/redis start

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅