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