したがって、インターネット上のチュートリアルに従っていて、sudo systemctl start
のようなsystemdコマンドを使用しました。 。
驚いたことに、このコマンドは次のようなエラーになります。
System has not been booted with systemd as init system (PID 1). Can't operate.
理由:Linuxシステムがsystemdを使用していません
その理由は、systemdコマンドを使用してLinux上のサービスを管理しようとしているが、システムがsystemdを使用しておらず、(ほとんどの場合)従来のSysV init(sysvinit)システムを使用しているためです。
しかし、それはどのように可能ですか?あなたはUbuntuを使用しており、チュートリアルも同じバージョンのUbuntuを対象としています。どうしてうまくいかないのですか?
WSLを使用してWindows内でUbuntuを使用している場合、systemdの代わりにSysVが使用され、systemctlコマンドを実行するとシステムが文句を言います(systemd initシステムを備えたLinuxシステムを対象としています)。
使用しているinitシステムを知る方法は?このコマンドを使用して、PID 1(システムで実行される最初のプロセス)に関連付けられているプロセス名を知ることができます。
ps -p 1 -o comm=
出力にinitまたはsysv(またはそのようなもの)が表示されるはずです。 initが表示されている場合、システムはsystemdを使用していないため、次のセクションで説明するようにinitコマンドを使用する必要があります。
簡単な答えは、systemctlコマンドを使用しないことです。代わりに、同等のsysvinitコマンドを使用してください。
それほど複雑ではなく、どちらのコマンドも多少似た構文になっています。
この表は役に立ちます。
Systemdコマンド | Sysvinitコマンド |
---|---|
systemctl start service_name | service service_name start |
systemctl stop service_name | service service_name stop |
systemctl restart service_name | service service_name restart |
systemctl status service_name | service service_name status |
systemctl enable service_name | chkconfig service_name on |
systemctl disable service_name | chkconfig service_name off |
どちらのチュートリアルを実行していても、同等のコマンドを試して使用すると、「システムがsystemdをinitシステム(PID 1)として起動されていません。動作しません」と表示されません。エラーはもうありません。
これがこのエラーを取り除くのに役立ったかどうかを教えてください。喜んでお手伝いさせていただきます。