Hệ thống chưa được khởi động với systemd as init system (PID 1). Không thể hoạt động


116

Tôi đang cố gắng làm theo quy trình cài đặt Redis như đã thảo luận trong bài viết này về đại dương kỹ thuật số, trong WSL. Phiên bản Ubuntu được cài đặt là Ubuntu 18.04.

Mọi thứ trong quá trình cài đặt redis đều ổn nhưng khi tôi cố gắng chạy nó, sudo systemctl start redistôi nhận được thông báo này.

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

Bất kỳ ý tưởng về những gì tôi nên làm với điều đó?


1
Thực hiện theo phương pháp này github.com/Microsoft/WSL/issues/365
Biswapriyo

Câu trả lời:


224

Thay vào đó, hãy sử dụng: sudo service redis-server start

Tôi đã gặp vấn đề tương tự, dừng / khởi động các dịch vụ khác từ bên trong Ubuntu trên WSL. Điều này đã hoạt động, trong khi systemctl thì không.

Và người ta có thể tự hỏi một cách hợp lý, "làm thế nào bạn có thể biết rằng tên dịch vụ là 'redis-server'?" Bạn có thể thấy chúng bằng cách sử dụngservice --status-all


Có .. Tôi cũng đang sử dụng cái này kể từ khi tôi viết sự cố, một cái từ bình luận cũng có một bình luận giúp ích
Fil

Tuyệt cám ơn bạn rất nhiều. Điều này hoạt động đối với hầu hết các dịch vụ đã được cài đặt trong môi trường WSL trong khi chúng ta không thể sử dụng systemctl để bắt đầu | dừng | khởi động lại dịch vụ.
Bayu Dwiyan Satria

1
Vì đây là câu trả lời được đánh giá cao nhất, sẽ rất vui nếu được xem thêm một chút thông tin về những gì xảy ra ở đây. Theo sự hiểu biết của tôi servicelà một sự trừu tượng và có thể trở lại thành một trong hai init.d( sysv init) hoặc systemdnhư câu hỏi ngụ ý không hoạt động. serverfault.com/questions/867322/…
fraleone

fraleone, vì đó là câu trả lời của tôi, tôi sẽ cố gắng giải quyết mối quan tâm của bạn. Để rõ ràng hơn, câu hỏi là về một lỗi khi cố gắng khởi động Redis (cụ thể là trên WSL), nơi sử dụng lệnh bắt đầu phổ biến được ghi ở nơi khác, systemctl start rediskhông hoạt động đối với OP. Nó cũng không hoạt động với tôi. Tôi đã tìm thấy giải pháp thay thế này ( redis-server start) và đến đây để cung cấp nó như một câu trả lời. Tôi rất vui vì nó đã giúp được những người khác. Nhưng tôi không / không có tư cách để giải thích "điều gì xảy ra ở đây", hoặc tại sao nó phản lại sự mong đợi của bạn. Vui lòng giải thích chi tiết vì bạn có thể tìm thấy nhiều hơn, hoặc có thể những người khác sẽ làm.
charlie arehart


6

Nếu bạn đang sử dụng Docker, bạn có thể thử một hình ảnh có Ubuntu với Hệ thống D đã hoạt động bằng lệnh này:

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

Sau đó, bạn chỉ cần chạy:

docker exec -it redis /bin/bash

và ở đó bạn chỉ cần cài đặt Redis, khởi động nó, khởi động lại nó hoặc bất cứ thứ gì bạn cần.


Docker sẽ không chạy trong WSL.
Aditya T

2
@Aditya Nó thực hiện trong WLS 2
thanos.a

3

Tôi gặp sự cố này khi chạy WSL 2

giải pháp là lệnh

 $ sudo dockerd

nếu sau đó bạn vẫn gặp sự cố với quyền, hãy chạy lệnh:

 $ sudo usermod -aG docker your-user

1
bạn cũng phải bắt đầu bản phân phối. Vì vậy, tôi có 2 thiết bị đầu cuối, một thiết bị đầu cuối chạy docker và thiết bị đầu cuối còn lại tôi sử dụng cho công việc của mình
Svetoslav Marinov

1

Tôi đã cố gắng khởi động Docker trong ubuntu và WSL.

Điều này đã làm việc cho tôi,

sudo service docker start


0

Điều này làm việc cho tôi (sử dụng WSL)

sudo /etc/init.d/redis start

(đối với bất kỳ dịch vụ nào khác, hãy kiểm tra thư mục init.d để biết tên tệp)


0

sử dụng lệnh này để chạy mọi dịch vụ, chỉ cần viết dịch vụ tên, ví dụ:

cho xrdp :

sudo /etc/init.d/xrdp start

cho redis :

sudo /etc/init.d/redis start

(đối với bất kỳ dịch vụ nào khác, hãy kiểm tra thư mục init.d để biết tên tệp)


-1

Tôi gặp phải vấn đề tương tự! ps --no-headers -o comm 1 Sau khi chạy nó trong terminal, hệ thống sẽ trả về systemd hoặc init

nếu nó trả về 'init', thì lệnh 'systemctl' sẽ không hoạt động đối với hệ thống của bạn


Bạn có thể vui lòng giải thích thêm một chút về câu trả lời của bạn?
jpnadas

để chạy và quản lý quy trình mongod của mình, bạn phải sử dụng hệ thống init tích hợp sẵn trong hệ điều hành của mình. Các phiên bản gần đây của Linux có xu hướng sử dụng systemd (sử dụng lệnh systemctl), trong khi các phiên bản Linux cũ hơn có xu hướng sử dụng System V init (sử dụng lệnh dịch vụ). Nếu hệ thống của bạn sử dụng systemd , lệnh là: - 'sudo systemctl start mongod 'và nếu nó sử dụng System V Init thì lệnh là: -' sudo service mongod start '
RoninS28
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.