システムクラッシュ後のPIDクラッシュを回避するには?

システムクラッシュ後のPIDクラッシュを回避するには?

httpd24-httpd-2.4.34-7私は起動時に(systemdを介して)起動するように設定されたRHEL 7.7を実行しています。最近、次の問題が発生しました。

  1. システムの競合、httpd.pidファイルは破損しません
  2. システムがバックアップを開始します
  3. httpd次のメッセージで起動が失敗します。

    httpd-scl-wrapper[119625]: httpd(pid 1440) はすでに実行中です。

  4. PID 1440を探すと、他のプロセスに割り当てられていることがわかりました。
  5. だから始めるhttpd.pid前に削除する必要があります。httpd

理想的には、競合が発生した後に人の介入なしにすべてのサービスが再起動されます。これを回避または軽減するための良い方法はありますか?

答え1

(インターネットポイントを与える必要があります。この回答に対するコメントは.)

私たちの場合、問題はPidFile外部からカスタム位置を設定したことです/var/run。カスタムの場所はファイルシステムにありませんtmpfs。つまり、httpd.pid競合や再起動後も、ユーザー定義の場所はそのまま残ります。したがって、解決策は、/var/runシステムの起動時に再構築される場所にPIDファイルを保存することです。

メモ:私たちはhttp24-httpdRHSCL出身です。デフォルトでは、プロセスはPIDファイルを/opt/rh/httpd24/root/var/run次の場所に保存しようとしているようです。いいえそうですtmpfs

関連情報