バックグラウンドで動かすデーモンプロセスに対してファイルディスクリプタの上限を設定するにはどうすれば良いんだってことで調べたときのメモ。
概要
- 環境
- OS – Amazon Linux release 2
- 結論
- serviceの設定ファイルに
LimitNOFILE
を指定する
- serviceの設定ファイルに
例
[Service] User=www LimitNOFILE=2048 ExecStart=./exec_somthing.sh
単純にserviceファイルに設定を加えて systemctl daemon-reload
とリロードをすると変更できた。設定ファイルが見つからない場合は systemctl status サービス名
で確認する。
プロセスごとのファイルディスクリプタ上限値はプロセスIDを指定して次のように確認できる。プロセスIDは systemctl status サービス名
やtopコマンドで確認できる。
$ grep 'Max open files' /proc/$(pid)/limits > Max open files 2048 2048 files