Systemd
允許使用 systemd 的使用者進行短“會話”
我正在測試我設置的新 gitlab 跑步者。
如果一個項目只有一個非常短的 CI 工作(或者一個很快就失敗了,這在測試設置之外可能更現實)systemd 開始報告“user@999.service”失敗,999 是 gitlab-runner 的 uid . 作業按其應有的方式執行,並且如果它使其變慢(例如通過為其添加睡眠),則不會失敗。
搜尋錯誤讓我相信它只是 systemd 在每次為該使用者啟動新“會話”時嘗試做某事,並決定它必須被破壞,因為它在很短的時間內多次退出。我該如何允許,最好只針對這個使用者?
事實證明,這是一個比我想像的更正常的單位。
並且通過製作一個
/etc/systemd/system/user@999.service.d/override.conf
(實際上override
沒關係,它可以是任何(可能有一些例外)字元串),包含:[Service] StartLimitBurst=20
並且執行
sudo systemctl daemon-reload
問題消失了。(我沒有過多考慮 value20
,這只是一個證明有效的數字)(如果您不需要自動化它,製作這樣一個文件的好方法是使用
sudo systemctl edit user@999.service
- 我發現的一些文件建議在製作這樣一個文件後,重新啟動受影響的服務就足夠了,這就是它似乎很特別的地方,至少我還沒想出怎麼做。)