「システムがsystemdを使用して初期化システム(PID 1)で起動されていません」問題を解決する方法。操作不可

「システムがsystemdを使用して初期化システム(PID 1)で起動されていません」問題を解決する方法。操作不可

このコマンドを使用するとき:

root:~# systemctl

出力は次のとおりです

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

この問題は「Kali Linux」と「Debian 9」で発生しますが、この問題を解決するには?

答え1

どの初期化システムが使用されているかを心配せずにサービスを開始および停止するには、次のものを使用する必要があります。service:

service openvas start

openvasサービスを開始するのに適したコマンドが使用されます。

答え2

Debian では、再インストールによってこの問題を「修正」できます。システム全体のサービス監督パック。

次のコマンドはsystemd統合パッケージをインストールします。システムには1つしか含めることができないため、runit-systemdプロセス中に削除されます。sysvinit

apt-get install runit-systemd

答え3

Dockerコンテナでエラーが発生した場合のエラーの1つの回避策は次のとおりです。"システムはsystemdを使用して初期化システム(PID 1)で起動されていません。実行できません。Dockerコンテナは、より多くの権限でコンテナを実行することを意味します。

最大権限を付与するには(たとえば、Dockerコンテナ内のホスト全体の操作)コマンド--privilegedラインパラメータが存在します。:

この--privilegedフラグはコンテナにすべての機能を提供し、デバイスのcgroupコントローラによって適用されるすべての制限を解放します。つまり、コンテナはホストが実行できるほぼすべての操作を実行できます。このフラグは、Docker内でDockerを実行するなどの特別なユースケースを許可するために存在します。

たとえば、コンテナ内でsystemdを実行するには、イメージインポートコマンドを次のようにします。

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

コンテナ内で対話型シェルを実行するには、コマンドは次のようになります。

docker exec -it "systemd_example_container" bash

欠点は、--privilegedすべてのDockerランタイム設定に使用できないフラグが必要であることです。したがって、この点を考慮してください。

詳細については、次を参照してください。権限のないコンテナでsystemdを実行します。ダニエル・ウォルシュ~のためRed Hatの開発者; 2016年9月更新:2019年4月)

関連情報