%2Fnginx(sysv)%20%E3%81%AA%E3%81%A9%E3%81%AE%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%20ulimit%20%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
大規模な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.conf
root
制限設定の1つの問題/etc/security/limits.conf
は、PAMスタックを通過するプロセスに依存することです。
サービスとデーモンがこれを実行しない場合は、関連するサービススクリプトを変更することが許可されるアプローチです。プロセスごとにこれを行う必要があります。ディストリビューションによっては、サービス起動スクリプトがパッケージとして管理されることがよくあります。つまり、アップグレードするたびに競合が発生します。