Redis 系统尚未以systemd作为初始系统(PID 1)启动。Can';不工作

Redis 系统尚未以systemd作为初始系统(PID 1)启动。Can';不工作,redis,windows-subsystem-for-linux,ubuntu-18.04,Redis,Windows Subsystem For Linux,Ubuntu 18.04,我正试图遵循Redis的安装过程,正如在WSL的《数字海洋》中讨论的那样。安装的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服务redis服务器启动 我也有同样的问题,在WSL

我正试图遵循Redis的安装过程,正如在WSL的《数字海洋》中讨论的那样。安装的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服务redis服务器启动

我也有同样的问题,在WSL上停止/启动Ubuntu中的其他服务。这是可行的,而systemctl没有

有人可能会问,“你怎么知道服务名是‘redis server’?”你可以看到他们使用的是
service--status all

,而不是使用

sudo系统ctl启动redis

使用:

sudo/etc/init.d/redis start


到目前为止,WSL中还没有systemd,如果您使用的是Docker,您可以使用以下命令尝试一个已经激活了systemd的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、启动它、重新启动它或任何您需要的东西。

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

解决办法是命令

 $ sudo dockerd
如果在此之后您的权限仍然存在问题,请运行以下命令:

 $ sudo usermod -aG docker your-user

我遇到了同样的问题!
ps--无标题-o命令1
在终端中运行此操作后,系统将返回systemdinit

如果它返回'init',那么'systemctl'命令将不适用于您的系统

这对我有效(使用WSL)


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

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

对于xrdp

sudo /etc/init.d/xrdp start
sudo /etc/init.d/redis start
对于redis

sudo /etc/init.d/xrdp start
sudo /etc/init.d/redis start

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

我试图在ubuntu和WSL中启动Docker

这对我很有效


sudo服务docker start

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


您只需运行
sudo服务docker start
,即可开始运行docker服务器。您可以通过运行
服务--status all
来检查您是否拥有docker服务器,您应该会看到docker列表。

这里完全是新手-在尝试了上述大多数建议之后,对我有效的命令是
sudo service apache2--完全重新启动
,web服务器启动


可能是因为我一直在遵循大量的安装说明,而没有重新启动/重新启动,所以出现了错误。我正在使用Apache2 Debian在WSL2中开发Ubuntu20.04。

重新启动计算机,输入bootloader(例如GRUB)并使用systemd启动-然后它就会工作

首先,以管理员身份运行Ubuntu。


然后运行
sudo dockerd

按照此方法是。。自从我写这个问题以来,我也一直在使用这个,评论中的那个评论也有一个评论,非常有用,非常感谢。这适用于在WSL环境中安装的大多数服务,而我们不能使用systemctl来启动|停止|重新启动服务。鉴于这是评级最高的答案,最好能看到这里发生的更多信息。据我所知,
服务
是一种抽象,可以回溯到
init.d
(sysv init)或
systemd
,正如问题所暗示的那样,这是不起作用的。弗雷利昂,既然这是我的答案,我会尽力解决你的问题。需要明确的是,问题是在尝试启动Redis(特别是在WSL上)时出现了一个错误,使用其他地方记录的公共启动命令时,
systemctl start Redis
,对OP不起作用。它对我也不起作用。我找到了这个替代方案(
redis server start
),并来到这里作为答案。我很高兴它帮助了其他人。但我无法解释“这里发生了什么”,或者为什么它与你的期望背道而驰。您可以随意详细说明,因为您可能会发现更多,或者其他人可能会。Docker不会在WSL中运行。@Aditya它在WLS 2中运行。您知道它在WLS 2中是否可用吗?从快速搜索中可以看出,WSL2没有使用systemd启动。这里有一个我没有测试过的解决方法。我如何在fedora/centos图像中使用它。您还必须启动发行版。因此,我有两个终端,一个运行docker,另一个用于我的工作。您可以使用“sudo dockerd&”,并且不需要两个终端。请您详细说明一下您的答案。为了运行和管理mongod进程,您将使用您的操作系统内置的init系统。最新版本的Linux倾向于使用systemd(使用systemctl命令),而较旧版本的Linux倾向于使用SystemV init(使用service命令)。如果您的系统使用systemd,则命令为:-“sudo systemctl start mongod”,如果使用SystemV init,则命令为:-“sudo service mongod start”