Próbuję postępować zgodnie z procesem instalacji Redis omówionym w tym artykule na temat cyfrowego oceanu w WSL. Zainstalowana wersja Ubuntu to Ubuntu 18.04.
Wszystko w instalacji Redis jest w porządku, ale kiedy próbowałem to uruchomić sudo systemctl start redis
, otrzymałem ten komunikat.
System has not been booted with systemd as init system (PID 1). Can't operate.
Masz pomysł, co mam z tym zrobić?
Odpowiedzi:
Zamiast tego użyj:
sudo service redis-server start
Miałem ten sam problem, zatrzymując / uruchamiając inne usługi z poziomu Ubuntu na WSL. To zadziałało, podczas gdy systemctl nie.
I można by się zastanawiać, „skąd możesz wiedzieć, że nazwa usługi to„ redis-server ”? Możesz je zobaczyć za pomocą
service --status-all
źródło
service
jest to abstrakcja i może powrócić doinit.d
( sysv init) lubsystemd
która, jak sugeruje pytanie, nie działa. serverfault.com/questions/867322/…systemctl start redis
nie działało dla OP. Na mnie też nie działało. Znalazłem tę alternatywę (redis-server start
) i przyszedłem tutaj, aby zaoferować ją jako odpowiedź. Cieszę się, że pomogło to innym. Ale nie byłem / nie jestem w stanie wyjaśnić „co się tutaj dzieje” lub dlaczego jest to sprzeczne z Twoimi oczekiwaniami. Nie krępuj się rozwinąć, ponieważ możesz znaleźć więcej, a może inni to zrobią.Zamiast używać sudo systemctl start redis użyj: sudo /etc/init.d/redis start
w tej chwili nie mamy systemd w WSL
źródło
Jeśli używasz Dockera, możesz wypróbować obraz, na którym jest już aktywny system Ubuntu z Systemem D za pomocą tego polecenia:
Następnie wystarczy uruchomić:
docker exec -it redis /bin/bash
i tam możesz po prostu zainstalować Redis, uruchomić go, ponownie uruchomić lub cokolwiek potrzebujesz.
źródło
Miałem ten problem z uruchomieniem WSL 2
rozwiązaniem było polecenie
jeśli po tym nadal masz problem z uprawnieniami, uruchom polecenie:
źródło
Próbowałem uruchomić Dockera w ramach ubuntu i WSL.
To zadziałało dla mnie,
sudo service docker start
źródło
To zadziałało dla mnie (używając WSL)
(w przypadku każdej innej usługi sprawdź folder init.d pod kątem nazw plików)
źródło
użyj tego polecenia do uruchomienia każdej usługi, po prostu napisz usługę nazw, na przykład:
dla xrdp :
dla redis :
(w przypadku każdej innej usługi sprawdź folder init.d pod kątem nazw plików)
źródło
Napotkałem ten sam problem!
ps --no-headers -o comm 1
Po uruchomieniu tego w terminalu, system zwróci systemd lub initjeśli zwróci „init”, to polecenie „systemctl” nie będzie działać dla twojego systemu
źródło