System nie został uruchomiony z systemd jako systemem inicjującym (PID 1). Nie mogę operować


143

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ć?


1
Postępuj zgodnie z tą metodą github.com/Microsoft/WSL/issues/365
Biswapriyo

Odpowiedzi:


254

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


Tak .. ja też tego używam odkąd napisałem problem, ten z komentarza też ma komentarz, który pomaga
Fil

Świetnie Dziękuję Ci bardzo. Działa to dla większości usług, które zostały zainstalowane w środowisku WSL, podczas gdy nie możemy użyć systemctl do uruchomienia | zatrzymania | ponownego uruchomienia usług.
Bayu Dwiyan Satria

1
Biorąc pod uwagę, że jest to najwyżej oceniana odpowiedź, byłoby miło zobaczyć trochę więcej informacji, co się tutaj dzieje. W moim rozumieniu servicejest to abstrakcja i może powrócić do init.d( sysv init) lub systemdktóra, jak sugeruje pytanie, nie działa. serverfault.com/questions/867322/…
fraleone

1
fraleone, skoro to była moja odpowiedź, spróbuję rozwiązać twój problem. Żeby było jasne, pytanie dotyczyło błędu podczas próby uruchomienia Redis (szczególnie na WSL), gdzie użycie wspólnego polecenia startu udokumentowanego w innym miejscu systemctl start redisnie 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ą.
charlie arehart


7

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:

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

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.


Docker nie będzie działać w WSL.
Aditya T

2
@Aditya Robi to w WLS 2
thanos.a

5

Miałem ten problem z uruchomieniem WSL 2

rozwiązaniem było polecenie

 $ sudo dockerd

jeśli po tym nadal masz problem z uprawnieniami, uruchom polecenie:

 $ sudo usermod -aG docker your-user

1
musiałbyś także uruchomić dystrybucję. Więc mam 2 terminale, jeden obsługuje docker, a drugi używam do mojej pracy
Svetoslav Marinov

3

Próbowałem uruchomić Dockera w ramach ubuntu i WSL.

To zadziałało dla mnie,

sudo service docker start


0

To zadziałało dla mnie (używając WSL)

sudo /etc/init.d/redis start

(w przypadku każdej innej usługi sprawdź folder init.d pod kątem nazw plików)


0

użyj tego polecenia do uruchomienia każdej usługi, po prostu napisz usługę nazw, na przykład:

dla xrdp :

sudo /etc/init.d/xrdp start

dla redis :

sudo /etc/init.d/redis start

(w przypadku każdej innej usługi sprawdź folder init.d pod kątem nazw plików)


-1

Napotkałem ten sam problem! ps --no-headers -o comm 1 Po uruchomieniu tego w terminalu, system zwróci systemd lub init

jeśli zwróci „init”, to polecenie „systemctl” nie będzie działać dla twojego systemu


Czy mógłbyś wyjaśnić nieco więcej swojej odpowiedzi?
jpnadas

Aby uruchomić i zarządzać procesem mongod, używałbyś wbudowanego w system operacyjny systemu init. Najnowsze wersje Linuksa zwykle używają systemd (który używa polecenia systemctl), podczas gdy starsze wersje Linuksa zwykle używają init System V (który używa polecenia service) Jeśli twój system używa systemd , polecenie to: - 'sudo systemctl start mongod 'i jeśli używa System V Init, to polecenie brzmi: -' sudo service mongod start '
RoninS28
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.