Rhel

崩潰後如何避免systemd PID衝突?

  • November 17, 2019

我正在執行httpd24-httpd-2.4.34-7配置為在 RHEL 7.7 上啟動(通過 systemd)。最近我遇到了這個問題:

  1. 系統崩潰,httpd.pid文件完好無損
  2. 系統已啟動備份
  3. httpd啟動失敗並顯示如下消息:

httpd-scl-包裝器$$ 119625 $$: httpd (pid 1440) 已經在執行

  1. 查找 PID 1440,我看到它已分配給不同的程序
  2. 所以,我需要在開始httpd.pid之前刪除httpd

理想情況下,我們所有的服務都會在沒有人為乾預的情況下在崩潰後重新啟動。有沒有避免/減輕這種情況的好方法?

(應該在評論中為這個答案獎勵網際網路積分。)

在我們的案例中,問題是我們在PidFile外面設置了一個自定義位置/var/run。我們的自定義位置不在tmpfs文件系統上,這意味著我們httpd.pid將在崩潰並重新啟動後保持原位。因此,解決方案是將 PID 文件儲存/var/run在系統啟動時重新建構的位置。

注意:我們http24-httpd來自 RHSCL。預設情況下,該程序似乎希望將其 PID 文件儲存在/opt/rh/httpd24/root/var/run其中似乎不是tmpfs.

引用自:https://unix.stackexchange.com/questions/548776