systemdをinitシステム(PID 1)として使用してシステムを起動していません。操作できません


143

このデジタルオーシャンの記事で説明されているように、WSLでRedisのインストールプロセスを実行しようとしています。インストールされているUbuntuのバージョンはUbuntu18.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


はい..問題を書いたときから私もこれを使用しています。コメントの1つにも役立つコメントがあります
Fil

よろしくお願いします。これは、systemctlを使用してサービスを開始|停止|再起動することはできませんが、WSL環境にインストールされているほとんどすべてのサービスで機能します。
Bayu DwiyanSatria20年

1
これが最高評価の回答であることを考えると、ここで何が起こるかについてもう少し情報を見るのは良かったでしょう。私の理解でserviceは、抽象化であり、init.dsysv init)またはsystemd暗黙の質問として機能しないもののいずれかにフォールバックできます。serverfault.com/questions/867322/...
fraleone

1
フラレオーネ、それが私の答えだったので、私はあなたの懸念に対処しようとします。明確にするために、質問は、Redisを(特にWSLで)開始しようとしたときにエラーが発生したことsystemctl start redisでした。他の場所で説明されている共通の開始コマンドを使用しても、OPでは機能しませんでした。それは私にとってもうまくいきませんでした。私はこの代替案(redis-server start)を見つけ、答えとしてそれを提供するためにここに来ました。それが他の人を助けてくれてうれしいです。しかし、私は「ここで何が起こっているのか」、またはそれがあなたの期待に反する理由を説明する立場にありませんでした。あなたがもっと見つけるかもしれないので、あるいはおそらく他の人がそうするので、自由に詳しく説明してください。
チャーリーアレハート

14

sudo systemctl start redisを使用する代わりに、sudo /etc/init.d/redisstartを使用します。

現在のところ、WSLにはsystemdがありません


1
それがWLS2で利用可能かどうか知っていますか?
thanos.a

1
クイック検索から、WSL2はsystemdで起動されません。ここには回避策がありますが、私はテストしていません。 github.com/microsoft/WSL/issues/994#issuecomment-502055417
バイロンGavras

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では実行されません。
AdityaT20年

2
これは、WLS 2でない@Aditya
thanos.a

4

WSL2の実行でこの問題が発生しました

解決策はコマンドでした

 $ sudo dockerd

それでも権限に問題がある場合は、次のコマンドを実行します。

 $ sudo usermod -aG docker your-user

1
また、ディストリビューションを開始する必要があります。つまり、2つのターミナルがあります。1つはDockerを実行し、もう1つは作業に使用します
SvetoslavMarinov20年

2

私はubuntuとWSL内でDockerを起動しようとしていました。

これは私のために働いた、

sudo service docker start


0

これは私のために働いた(WSLを使用して)

sudo /etc/init.d/redis start

(その他のサービスについては、init.dフォルダーでファイル名を確認してください)


0

このコマンドを使用して、すべてのサービスを実行 します。たとえば、名前サービスを記述します。

以下のためのXRDP

sudo /etc/init.d/xrdp start

以下のためのRedis

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のサービスのmongodスタート』
RoninS28
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.