Systemd

puppet 如何修復“卡住”的 systemctl 服務,而 systemctl 會拒絕啟動服務?

  • November 23, 2019

我們有一個場景,在 RHEL 上,我們無法啟動一個已經在執行而我們剛剛停止的應用程序。

sudo systemctl start myservice

我們無權訪問journald此伺服器上的日誌,因此伺服器的狀態是個謎。

應用程序實例沒有“啟動”,因為它詳細記錄,但應用程序日誌沒有被觸及。

我的朋友過來並在這個盒子上執行了一個傀儡代理更新:

puppet agent --environment=production --test

在此之後 - 我們可以停止並啟動服務。

我知道 puppet 能夠刪除和創建服務,也可以“守護程序重新載入”。即類似的東西

systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
systemctl daemon-reload
systemctl reset-failed

現在回想起來,我意識到我應該跑步

sudo systemctl reset-failed

我正在嘗試弄清楚 puppet 為使“卡住”服務正常工作所做的具體操作。

我的問題是:puppet 如何修復“卡住”的 systemctl 服務,而 systemctl 會拒絕啟動服務?

我可以訪問journald日誌並發現以下內容。

有趣的是,如果磁碟已滿,服務將不會啟動。

傀儡跑的時候可以選擇跑一個

yum clean all

這解決了問題並使服務能夠啟動。

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