대규모 웹사이트의 셸에서 애플리케이션을 실행할 때 셸에 ulimit를 설정하는 것이 더 낫다는 것을 알고 있습니다.
그러나 대부분의 서비스는 systemd/sysv에 의해 시작됩니다.
서비스 스크립트(/etc/init.d)에서 ulimit를 설정해야 합니까?
답변1
일반적으로 아래와 같이 서비스가 실행되는 사용자에 대해 ulimit를 설정합니다 /etc/security/limits.conf
.
예를 들어 웹 서비스를 실행하는 경우 관련 제한을 설정하는 www-data
항목을 추가합니다 .www-data
/etc/security/limits.conf
프로세스가 실행 중이면 소유된 모든 프로세스에 제한이 적용되므로 root
더 복잡해집니다 ./etc/security/limits.conf
root
제한 설정의 한 가지 문제점 /etc/security/limits.conf
은 PAM 스택을 통과하는 프로세스에 의존한다는 것입니다.
서비스와 데몬이 이를 수행하지 않는 경우 관련 서비스 스크립트를 수정하는 것이 허용되는 접근 방식입니다. 프로세스별로 이 작업을 수행해야 할 수 있으며, 배포판에 따라 서비스 시작 스크립트는 패키지로 관리되는 경우가 많습니다. 즉, 업그레이드할 때마다 충돌이 발생하게 됩니다.