Systemd
puppet 如何修復“卡住”的 systemctl 服務,而 systemctl 會拒絕啟動服務?
我們有一個場景,在 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
這解決了問題並使服務能夠啟動。