Alibaba Cloud Linux 2オペレーティングシステムでsystemdサービスを正常に実行できない場合は、このトピックで説明されているソリューションに基づいて問題をトラブルシューティングできます。

問題の説明

次の条件を満たし、正常に実行されているElastic Compute Service (ECS) インスタンスでは、インスタンスにデプロイされたサービスが起動しない場合があります。
  • インスタンスは、Alibaba Cloud Linux 2.1903 LTS 64ビットパブリックイメージを使用します。
  • systemdのバージョンはsystemd-219-78.4.al7以前です。
この場合、systemdプロセスが正常に実行できないか、システムが次のログ情報を生成する可能性があります。
サービス 'org.freedesktop.systemd1' の有効化に失敗しました: タイムアウト
systemctl daemon-reexecコマンドを実行すると、問題は解決しません。 pstack 1コマンドを実行すると、systemdサービスが次の図に示すプロセスに関与していることがわかります。 pstack 1

発生源

オープンソースのsystemdサービスに脆弱性があり、ヒープメモリが破損し、systemdプロセスが予期せず終了する可能性があります。 systemdプロセスが予期せず終了すると、フリーズして回復できません。
最新バージョンのオープンソースsystemdもこの問題を抱えており、ヒープメモリの破損の根本原因を特定できません。 systemdは、最新のAlibaba Cloud Linuxパブリックイメージで最適化されています。 systemdのバージョンがsystemd-219-78.4.al7より後で、それでもこの問題が発生している場合は、kill -15 1コマンドを実行してsystemdサービスを回復できます。

対応策

トラブルシューティングを実行する前に、ECSインスタンスのスナップショットを作成してデータをバックアップすることを推奨します。 トラブルシューティング中にデータが失われた場合は、スナップショットを使用してディスクデータを復元できます。 スナップショット機能の詳細については、「スナップショットの概要」をご参照ください。
  1. ECS インスタンスに接続します。
    詳細については、「概要」をご参照ください。
  2. 次のコマンドを実行してsystemdのバージョンを確認します。
     rpm -q systemd
    次のようなコマンド出力が返されます。
     systemd-219-78.4.al7.3.x86_64
  3. systemdのバージョンに基づいて問題を解決するには、次の操作を実行します。
    • systemdのバージョンがsystemd-219-78.4.al7.3.x86_64以前の場合は、次の手順を順番に実行します。
      1. 次のコマンドを実行して、systemdサービスをアップグレードします。
        yum update systemd
      2. 次のコマンドを実行して、ECSインスタンスを再起動します。
        reboot
    • systemdのバージョンがsystemd-219-78.4.al7.3.x86_64以降の場合でも、次のコマンドを実行してsystemdサービスを回復します。
      キル-15 1