Shell

我是否需要為系統服務設置 ulimit,例如 nginx.service(systemd)/nginx(sysv)?

  • February 23, 2016

我知道,當我們為大型網站在 shell 中執行應用程序時,我們最好為我們的 shell 設置 ulimit,

但大部分服務是由 systemd/sysv 啟動的。

我需要在服務腳本 (/etc/init.d) 中設置 ulimit 嗎?

您通常會在服務執行的使用者上設置 ulimit,例如/etc/security/limits.conf.

例如,如果 Web 服務執行為www-data,您將添加一個條目www-data/etc/security/limits.conf設置相關限制。

如果程序執行,root那麼它會更複雜,因為限制/etc/security/limits.conf將適用於所有root擁有的程序。

設置限制的一個問題/etc/security/limits.conf是它依賴於通過 PAM 堆棧的程序。

對於不這樣做的服務和守護程序,是的,修改相關服務腳本是一種可接受的方法。可能有必要在每個程序的基礎上執行此操作,並且根據您的發行版,服務啟動腳本通常是包管理的,這意味著您每次升級時都會遇到衝突。

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