systemd를 init 시스템 (PID 1)으로 사용하여 시스템을 부팅하지 않았습니다. 작동 할 수 없습니다


143

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.

어떻게해야하는지에 대한 아이디어가 있습니까?


답변:


254

대신 다음을 사용하십시오. sudo service redis-server start

WSL의 Ubuntu 내에서 다른 서비스를 중지 / 시작하는 동일한 문제가 발생했습니다. 이것은 systemctl이 작동하지 않은 곳에서 작동했습니다.

"서비스 이름이 'redis-server'라는 것을 어떻게 알 수 있습니까?"라고 합리적으로 궁금해 할 수 있습니다. 당신은 그들을 사용하여 볼 수 있습니다service --status-all


예 .. 문제를 작성한 이후로도 사용하고 있습니다. 댓글에있는 댓글에도 도움이되는 댓글이 있습니다
Fil

좋습니다. 감사합니다. 이것은 WSL 환경에 설치된 대부분의 모든 서비스에서 작동하지만 systemctl을 사용하여 서비스를 시작 | 중지 | 다시 시작할 수 없습니다.
Bayu Dwiyan Satria

1
이것이 가장 높은 등급의 답변이라는 점을 감안할 때 여기서 일어나는 일에 대해 조금 더 많은 정보를 보는 것이 좋았을 것입니다. 내 이해 service에는 추상화이며 init.d( sysv init) 또는 systemd질문이 암시 한대로 작동하지 않는 것으로 돌아갈 수 있습니다 . serverfault.com/questions/867322/...
fraleone

1
fraleone, 내 대답 이었으므로 귀하의 우려 사항을 해결하려고 노력할 것입니다. 명확하게 말하면 질문은 Redis를 시작하려는 오류 (특히 WSL에서)에 관한 것이 systemctl start redis었는데, 다른 곳에서 문서화 된 공통 시작 명령 을 사용하면 OP에서 작동하지 않습니다. 나에게도 효과가 없었습니다. 이 대안 ( redis-server start)을 찾았고 여기에 답을 제공했습니다. 다른 사람들에게 도움이되어 기쁩니다. 그러나 나는 "여기서 일어나는 일"이나 그것이 당신의 기대에 어긋나는 이유를 설명 할 입장이 아니 었습니다. 더 많은 것을 찾거나 다른 사람들이 찾을 수 있으므로 자유롭게 자세히 설명하십시오.
찰리는 arehart


7

Docker를 사용하는 경우 다음 명령을 사용하여 시스템 D가 이미 활성화 된 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를 설치하고 시작하고 다시 시작할 수 있습니다.


Docker는 WSL에서 실행되지 않습니다.
Aditya T

2
@Aditya WLS 2에서 수행합니다
thanos.a

5

WSL 2를 실행하는 동안이 문제가 발생했습니다.

해결책은 명령이었다

 $ sudo dockerd

그 후에도 권한에 문제가있는 경우 다음 명령을 실행하십시오.

 $ sudo usermod -aG docker your-user

1
또한 배포판을 시작해야합니다. 나는 2 개 단자를 가지고 그래서 하나 개의 실행은 고정 표시기 나는 내 작품에 사용하는 다른 하나
베토 슬라 프 Marinov

3

우분투와 WSL 내에서 Docker를 시작하려고했습니다.

이것은 나를 위해 일했습니다.

sudo service docker start


0

이것은 나를 위해 일했습니다 (WSL 사용).

sudo /etc/init.d/redis start

(다른 서비스의 경우 init.d 폴더에서 파일 이름을 확인하십시오)


0

모든 서비스를 실행하려면이 명령을 사용하십시오 . 예를 들어 이름 서비스를 작성하십시오.

대한 XRDP :

sudo /etc/init.d/xrdp start

대한 레디 스 :

sudo /etc/init.d/redis start

(다른 서비스의 경우 init.d 폴더에서 파일 이름을 확인하십시오)


-1

같은 문제가 발생했습니다! ps --no-headers -o comm 1 터미널에서 이것을 실행하면 시스템은 systemd 또는 init를 반환합니다.

'init'를 반환하면 'systemctl'명령이 시스템에서 작동하지 않습니다.


답변에 대해 좀 더 자세히 설명해 주시겠습니까?
jpnadas

mongod 프로세스를 실행하고 관리하려면 운영 체제에 내장 된 init 시스템을 사용해야합니다. 최신 버전의 Linux는 systemd (systemctl 명령 사용)를 사용하는 반면, 이전 버전의 Linux는 System V init (service 명령 사용)을 사용하는 경향이 있습니다. 시스템에서 systemd 를 사용하는 경우 명령은 다음과 같습니다.- 'sudo systemctl start mongod '및 System V Init 를 사용하는 경우 명령은 다음과 같습니다.-'sudo service
mongod
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.