尚未使用systemd作为初始化系统(PID 1)引导系统。无法操作

Fil*_*Fil 34 redis windows-subsystem-for-linux ubuntu-18.04

我正在尝试按照WSL中有关数字海洋的本文中的讨论进行Redis安装过程。安装的Ubuntu版本是Ubuntu 18.04。

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

System has not been booted with systemd as init system (PID 1). Can't operate.
Run Code Online (Sandbox Code Playgroud)

关于该怎么办的任何想法?

cha*_*art 76

而是使用: sudo service redis-server start

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

有人可能会怀疑,“您怎么知道服务名称是'redis-server'?” 您可以使用查看它们service --status-all

  • 鉴于这是评价最高的答案,很高兴能看到更多关于这里发生的事情的信息。据我了解,“service”是一个抽象,可以回退到“init.d”(*sysv* init)或“systemd”,正如问题所暗示的那样,这不起作用。https://serverfault.com/questions/867322/what-is-the-difference- Between-service-and-systemctl (3认同)
  • fraleone,既然这是我的回答,我会尽力解决您的担忧。需要明确的是,问题是关于尝试启动 Redis 时出现的错误(特别是在 WSL 上),其中使用其他地方记录的通用启动命令“systemctl start redis”对 OP 不起作用。它对我来说也不起作用。我找到了这个替代方案(`redis-server start`)并来这里提供它作为答案。我很高兴它帮助了其他人。但我无法解释“这里发生了什么”,或者为什么它违背了你的期望。请随意详细说明,因为您可能会发现更多,或者其他人也会发现更多。 (3认同)
  • 您还可以在启动时从“.profile”调用所需的命令,请参阅 docker 的类似问题 [“sudo systemctl enable docker”不可用:在 WSL2 上启动时自动运行 Docker(使用“sysvinit”/“init”) ” 命令或解决方法)](/sf/answers/4607017061/) 这也详细解释了为什么您需要在这里使用“service”而不是 systemd。 (2认同)

Byr*_*ras 28

而不是使用

sudo systemctl start redis

用:

sudo /etc/init.d/redis start

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

  • `sudo /etc/init.d/redis-server start` 修复了所有其他命令失败后的问题。我在 WSL 上。 (3认同)
  • 您知道 WLS 2 上是否可用吗? (2认同)

Fel*_*sto 13

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

解决方案是命令

 $ sudo dockerd
Run Code Online (Sandbox Code Playgroud)

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

 $ sudo usermod -aG docker your-user
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用“sudo dockerd &”,并且不需要 2 个终端。 (4认同)
  • 我得到“sudo:dockerd:找不到命令” (4认同)
  • 您还必须启动发行版。所以我有 2 个终端,一个运行 docker,另一个用于我的工作 (2认同)

Car*_*tos 10

如果您使用的是 Docker,您可以使用以下命令尝试使用 Ubuntu 和 System D 的映像:

docker run -d --name redis --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu:18.04
Run Code Online (Sandbox Code Playgroud)

然后你只需要运行:

docker exec -it redis /bin/bash

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

  • @Aditya 在 WLS 2 中确实如此 (3认同)

Ric*_*ick 6

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

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


小智 5

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

这对我有用,

sudo service docker start


amy*_*374 5

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

sudo apt-get install cgroupfs-mount
sudo cgroupfs-mount
sudo service docker start
Run Code Online (Sandbox Code Playgroud)