Rhel
崩潰後如何避免systemd PID衝突?
我正在執行
httpd24-httpd-2.4.34-7
配置為在 RHEL 7.7 上啟動(通過 systemd)。最近我遇到了這個問題:
- 系統崩潰,
httpd.pid
文件完好無損- 系統已啟動備份
httpd
啟動失敗並顯示如下消息:httpd-scl-包裝器$$ 119625 $$: httpd (pid 1440) 已經在執行
- 查找 PID 1440,我看到它已分配給不同的程序
- 所以,我需要在開始
httpd.pid
之前刪除httpd
理想情況下,我們所有的服務都會在沒有人為乾預的情況下在崩潰後重新啟動。有沒有避免/減輕這種情況的好方法?
(應該在評論中為這個答案獎勵網際網路積分。)
在我們的案例中,問題是我們在
PidFile
外面設置了一個自定義位置/var/run
。我們的自定義位置不在tmpfs
文件系統上,這意味著我們httpd.pid
將在崩潰並重新啟動後保持原位。因此,解決方案是將 PID 文件儲存/var/run
在系統啟動時重新建構的位置。注意:我們
http24-httpd
來自 RHSCL。預設情況下,該程序似乎希望將其 PID 文件儲存在/opt/rh/httpd24/root/var/run
其中似乎不是tmpfs
.