Systemd

允許使用 systemd 的使用者進行短“會話”

  • August 28, 2019

我正在測試我設置的新 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問題消失了。(我沒有過多考慮 value 20,這只是一個證明有效的數字)

(如果您不需要自動化它,製作這樣一個文件的好方法是使用sudo systemctl edit user@999.service- 我發現的一些文件建議在製作這樣一個文件後,重新啟動受影響的服務就足夠了,這就是它似乎很特別的地方,至少我還沒想出怎麼做。)

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