Shell
我是否需要為系統服務設置 ulimit,例如 nginx.service(systemd)/nginx(sysv)?
我知道,當我們為大型網站在 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 堆棧的程序。對於不這樣做的服務和守護程序,是的,修改相關服務腳本是一種可接受的方法。可能有必要在每個程序的基礎上執行此操作,並且根據您的發行版,服務啟動腳本通常是包管理的,這意味著您每次升級時都會遇到衝突。