nginx.service(systemd)/nginx(sysv) などのシステムサービスに対して ulimit を設定する必要がありますか?

nginx.service(systemd)/nginx(sysv) などのシステムサービスに対して ulimit を設定する必要がありますか?

大規模なWebサイトのシェルでアプリケーションを実行するときは、シェルにulimitを設定する方が良いことがわかります。

ただし、ほとんどのサービスはsystemd / sysvによって開始されます。

サービススクリプト(/etc/init.d)でulimitを設定する必要がありますか?

答え1

通常、次のようにサービスが実行されているユーザーに対してulimitを設定します/etc/security/limits.conf

たとえば、Webサービスを実行している場合は、関連する制限を設定するwww-dataエントリを追加します。www-data/etc/security/limits.conf

プロセスが実行中の場合、所有されているすべてのプロセスに制限が適用されるため、rootより複雑になります。/etc/security/limits.confroot

制限設定の1つの問題/etc/security/limits.confは、PAMスタックを通過するプロセスに依存することです。

サービスとデーモンがこれを実行しない場合は、関連するサービススクリプトを変更することが許可されるアプローチです。プロセスごとにこれを行う必要があります。ディストリビューションによっては、サービス起動スクリプトがパッケージとして管理されることがよくあります。つまり、アップグレードするたびに競合が発生します。

関連情報