ChatGPT解决这个技术问题 Extra ChatGPT

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

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers. We don’t allow questions about general computing hardware and software on Stack Overflow. You can edit the question so it’s on-topic for Stack Overflow. Closed 8 months ago. This post was edited and submitted for review 5 months ago and failed to reopen the post: Original close reason(s) were not resolved Improve this question

I'm trying to follow the Redis installation process that was discuss in this article of digital ocean, for in WSL(Windows Sub-System for Linux). The Ubuntu version installed is Ubuntu 18.04.

Everything in redis installation is fine but when I tried to run this sudo systemctl start redis I got this message.

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

Any Idea on what should I do with that?


c
charlie arehart

Instead, use: sudo service redis-server start

I had the same problem, stopping/starting other services from within Ubuntu on WSL. This worked, where systemctl did not.

And one could reasonably wonder, "how would you know that the service name was 'redis-server'?" You can see them using service --status-all


Yes.. I been using this too since I wrote the problem, that one from the comment also has a comment that help
Great, thank you very much. This work for most all services that have been install in WSL environment while we cannot use systemctl to start|stop|restart services.
Given this is the highest rated answer it would have been nice to see a little more info what happens here. To my understanding service is an abstraction and can fall back to either init.d (sysv init) or systemd which as the question implied does not work. serverfault.com/questions/867322/…
fraleone, since it was my answer, I'll try to address your concern. To be clear, the question was about an error trying to start Redis (on WSL specifically), where using the common start command documented elsewhere, systemctl start redis, was not working for the OP. It wasn't working for me, either. I found this alternative (redis-server start) and came here to offer it as an answer. I'm glad it's helped others. But I wasn't/am not in a position to explain "what happens here", or why it counters your expectations. Feel free to elaborate as you may find more, or perhaps others will.
You can also call the needed commands from ".profile" already at boot up time, see the similar issue for docker “sudo systemctl enable docker” not available: Automatically run Docker at boot on WSL2 (using a “sysvinit” / “init” command or a workaround) which also explains in detail why you need to use "service" here instead of systemd.
M
Maifee Ul Asad

Instead of using

sudo systemctl start redis

use:

sudo /etc/init.d/redis start

as of right now we do not have systemd in WSL

Or sometime it might be redis-server, like:

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

Just do a ls, like: ls /etc/init.d


Do you know if it available on WLS 2 ?
From a quick search WSL2 is not booted with systemd. There is a workaround here though which I have not tested. github.com/microsoft/WSL/issues/994#issuecomment-502055417
How I use that in a fedora / centos image.
sudo /etc/init.d/redis-server start fixed the problem after all other commands had failed. I am on WSL.
F
Felipe Augusto

I had this problem running WSL 2

the solution was the command

 $ sudo dockerd

if after that you still have a problem with permission, run the command:

 $ sudo usermod -aG docker your-user

you'd also have to start the distro. So I have 2 terminals one runs docker and the other one I use for my work
You can use "sudo dockerd &" and you won't need 2 terminals.
I get sudo: dockerd: command not found
S
Sangeetha

I was trying to start Docker within ubuntu and WSL.

This worked for me,

sudo service docker start


C
Carlos Saltos

If you are using Docker, you may try an image that has Ubuntu with System D already active with this command:

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

Then you just need to run:

docker exec -it redis /bin/bash

and there you can just install Redis, start it, restart it or whatever you need.


Docker won't run in WSL.
@Aditya It does in WLS 2
R
Rickmakeitquick

Total newbie here - after trying most of the above suggestions, the command that worked for me was sudo service apache2 --full-restart and the web server started up.

Maybe the error came up because I have been following lots of setup instructions without a reboot/restart. I'm working on Ubuntu 20.04 in WSL2 using Apache2 Debian.


a
amy8374

For WSL2, I had to install cgroupfs-mount, than start the daemon, as described here:

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

a
assayag.org

This worked for me (using WSL)

sudo /etc/init.d/redis start

(for any other service, check the init.d folder for filenames)


m
mamal

use this command for run every service just write name service for example :

for xrdp :

sudo /etc/init.d/xrdp start

for redis :

sudo /etc/init.d/redis start

(for any other service, check the init.d folder for filenames)


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

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now