このコマンドを使用するとき:
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月)。